EF Core 11 ile dotnet ef için .config/dotnet-ef.json yapılandırma dosyası
EF Core 11, dotnet ef komut satırı aracının varsayılan seçenekleri .config/dotnet-ef.json dosyasından okumasını sağlıyor. DbContext'in startup projesinde olmadığı çözümlerde her komutta tekrarlanan --project ve --startup-project parametreleri artık bir kez yazılabiliyor. Ayar dosyası klasör ağacında yukarı doğru aranıyor ve komut satırı seçenekleri her zaman öncelikli oluyor.
Kilit noktalar
- Yapılandırma dosyası .config/dotnet-ef.json yoluna konur ve project, startupProject, context alanları tanımlanır.
- Yol değerleri .config klasörünün üst dizinine göre çözülür, çalışma dizinine göre değil.
- Araç yukarı doğru ararken ilk bulduğu dosyayı kullanır; en yakın dosya kazanır.
- Komut satırı seçenekleri dosyadaki değerleri geçersiz kılar.
- context alanı, bir projede birden fazla DbContext olduğunda --context parametresini gereksiz kılar.
EF Core 11 ile dotnet ef komut satırı aracı, varsayılan seçenekleri .config/dotnet-ef.json dosyasından okuyabiliyor. Özellikle DbContext'in ayrı bir class library içinde, startup projesi ise bir Web API olduğunda her migration ve veritabanı komutuna proje parametrelerini eklemek zahmetliydi. Bu dosya, proje yapısını bir kez tanımlamanın resmi bir yolunu sunuyor.
Dosyadaki project, startupProject ve isteğe bağlı context alanları, bulundukları .config klasörünün üst dizinine göre çözümleniyor. Araç, çalıştırıldığı dizinden başlayarak ağacı yukarı doğru tarar ve ilk bulduğu dosyayı kullanır. Komut satırında verilen seçenekler dosyadakileri geçersiz kılar, bu yüzden tek seferlik değişiklikler için dosyayı düzenlemeye gerek kalmaz. Her çözüm klasörü kendi varsayılanlarını taşıyabilir. Ayrıntılar için orijinal yazıya ve EF Core 11 belgelerine bakmak faydalı olur.
Gerçek dünyada kullanımı
- Ayrı bir veri erişim katmanını birden fazla API ile paylaşan çözümlerde migration komutlarını kısaltmak.
- CI betiklerinde dotnet ef database update çağrılarını sade tutmak için proje yollarını dosyada sabitlemek.
- Monorepo içinde birbirinden bağımsız iki alanın (ör. Playlist ve Recipe) kendi varsayılanlarını ayrı ayrı taşımak.
Neden önemli
DbContext'i startup projesinin dışında tutan çözümlerde her dotnet ef komutu artık kısa yazılabilir ve betikler sadeleşir. Ekip içinde proje yolu hatalarının da azalması beklenir.
Benzer haberler
- C# 14 extension member'ları: derleyicinin uyarmadığı gölgeleme hatasıDEV Community: #csharp1 gün önce
- C#'ta LLM token'ları: yapay zekâ "strawberry"deki r'leri neden sayamıyor?DEV Community: #csharp1 gün önce
- .NET ile SSH, Docker ve Dosya Yönetimi Bir Arada: TermForge İncelemesiHabr C# (ru)2 gün önce