Birden Fazla Projede Farklı DotNet EF Tools Kullanımı
Birçok farklı proje .net ef tools ile scaffold yaparak veritabanı modellerini otomatik oluşturuz. Bu projelerin sürüm farklılıkları çakışmalara yol açıyor. Bilgisayarımdaki global dotnet ef tools sürümü ile projelerinki çakışıyor ve bu da hatalara sebep olabiliyor. Bu yüzden böyle bir işleme ihtiyaç duydum.
Bu makaledeki işlemler windows işletim sistemi üzerinde yapılmıştır.
dotnet-ef-8.0.0 adında bir klasör oluşturalım. Tam yolu şu şekilde olsun. “D:\projects\dotnet-ef-tools\dotnet-ef-8.0.0”
Aşağıdaki komut ile (istediğimiz versiyonu seçerek) dotnet ef yükleyelim.
$ dotnet tool install dotnet-ef --version 8.0.0 --tool-path D:\projects\dotnet-ef-tools\dotnet-ef-8.0.0
Bu yoldaki dosyayı cmd ile dotnet-ef8 komutu ile çalıştırmak istiyorum.
Bunun için exe’nin bulunduğu yolda dotnet-ef8.bat adında bir dosya oluşturalım. Dosya içeriği aşağıdaki gibidir.
@echo off
D:\projects\dotnet-ef-tools\dotnet-ef-8.0.0\dotnet-ef.exe %*
Komuttaki %*
, komuta verilen tüm parametreleri alır ve dotnet-ef.exe
'ye iletir. Örneğin: dotnet-ef8 — version
Daha sonra ortam değişkenlerini düzenle’ yi açalım ve Sistem değişkenleri’den Path’i bulalım ve dotnet-ef8.bat dosyasının yolunu buraya ekleyelim.
Şimdi komut satırını açalım ve test edelim.
$ dotnet-ef8 --version
Çıktı aşağıdaki şekilde olmalıdır.
Entity Framework Core .NET Command-line Tools
8.0.0
Örnek Scaffold Komutu
$ dotnet-ef8 dbcontext scaffold "User ID=postgres_user;Password=postgres_pass;Server=192.168.0.20;Port=8081;Database=test_db;Integrated Security=true;Pooling=true;" Npgsql.EntityFrameworkCore.PostgreSQL -d -o ../APIX.DATA/Entities -n APIX.DATA.Entities --no-onconfiguring -f -c "ProjectDbContext" --project APIX.csproj
En güncel paketin varsayılan olarak kullanılacağını unutmayın.
İyi Çalışmalar!