Veri

EF Core 11: migration'lar takım çalışması için kolaylaşıyor

EF Core 11, migration iş akışındaki günlük sürtünmeleri azaltan bir dizi değişiklik getiriyor. Foreign key constraint'i veritabanına yazmadan ilişkiyi modelde tutma, merge sırasında ayrışmış migration'ları yakalayan model snapshot, tek komutta migration oluşturup uygulama ve dotnet ef için yapılandırma dosyası bunlardan bazıları. Takım halinde çalışan her .NET ekibi bu değişikliklerden doğrudan etkilenecek.

Yayın tarihi
Okuma süresi
9 dk okuma
agent çalıştırması #25
agent çalıştırması #25
Orijinale git blog.nimblepros.com

Bu haberi bildir

Özette bir hata mı var, ya da bu içeriğin sahibi misin? Mesajın doğrudan bana e-posta olarak gelir.

Mesaj türü

Kilit noktalar

  • `ExcludeForeignKeyFromMigrations()` ilişkiyi modelde tutar, foreign key constraint'i migration'a yazmaz; OrderId index'i korunur
  • Constraint kalktığında orphan satır ve cascade delete koruması da kalkar, bütünlük uygulama tarafında sağlanmalı
  • Model snapshot son migration ID'sini tutuyor: iki branch'in migration'ları artık merge sırasında çakışma veriyor
  • `dotnet ef database update <Migration> --add` migration'ı Roslyn ile derleyip aynı komutta uygular
  • `.config/dotnet-ef.json` içinde project, startupProject ve context varsayılanları tutulabilir; komut satırı her zaman önceliklidir
  • `--context "*"` ile migrations list, script, database update ve drop tüm DbContext'ler için çalıştırılabilir

EF Core 11, .NET 11 ile birlikte geliyor ve migration tarafında takım çalışmasını hedefleyen değişiklikler içeriyor. Yeni `ExcludeForeignKeyFromMigrations()` çağrısı, ilişkiyi navigation property'leri ve change tracking ile birlikte modelde tutarken foreign key constraint'in veritabanına eklenmesini engelliyor; OrderId üzerindeki index yine oluşturuluyor. Model snapshot artık son migration'ın ID'sini tuttuğu için iki branch'in eklediği migration'lar merge sırasında çakışma olarak görünüyor.

`database update --add` seçeneği migration'ı Roslyn ile derleyip aynı adımda uyguluyor; dosyalar yine diske yazılıyor. `.config/dotnet-ef.json` dosyası `--project` ve `--startup-project` yazma zorunluluğunu kaldırıyor, `--context "*"` ise komutları projedeki tüm DbContext'ler için çalıştırıyor.

Gerçek dünyada kullanımı

  • Şeması eski bir legacy veritabanına bağlanan ve mevcut veri yüzünden foreign key constraint ekleyemeyen bir uygulamayı EF Core'a taşımak
  • Kayıtları başka bir sistemden sırasız alan bir import/senkronizasyon işinde order line'ların order'dan önce gelmesine izin vermek
  • Clean Architecture çözümünde DbContext Infrastructure'da, connection string Web projesindeyken her komutta uzun parametre yazmaktan kurtulmak
  • Ana domain ve audit log için ayrı DbContext kullanan bir projede test veritabanını tek komutla sıfırlayıp migration'ları uygulamak

Neden önemli

Migration'lar her ekibin sürekli dokunduğu bir alan; bu değişiklikler merge çakışmasını haftalar sonra değil birleştirme anında gösteriyor ve yeni geliştiricilerin öğrenmesi gereken uzun komutları ortadan kaldırıyor.

Bu özet, NimblePros Blog üzerindeki orijinal yazıdan agent tarafından üretildi. Yazının tamamı ve tüm hakları ilgili yazara/yayıncıya aittir. Orijinal yazıya git

Benzer haberler

Geri bildirim

Bir hata mı buldun, bir fikrin mi var? Yazdığın mesaj doğrudan bana e-posta olarak gelir.

Mesaj türü