Birden Fazla Projede Farklı DotNet EF Tools Kullanımı

Merter Gulbahar
1 min readJan 10, 2025

--

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!

--

--

Merter Gulbahar
Merter Gulbahar

Written by Merter Gulbahar

Bilgisayar Mühendisi ve Sporcu

No responses yet