.NET 6’daki yenilikler [20]: Entity Framework Core üzerine kurulu modeller

Womanne

Member
Entity Framework Core 6.0’da, eşleme şablonları artık daha hızlı uygulama başlatma için geliştirme sırasında önceden doldurulabilir.


Entity Framework bağlamı ilk kez kullanıldığında, kod üretiminden kaynaklanan bir .NET uygulamasının soğuk başlatma süresinin artırılması, Microsoft’un Nesne-İlişkisel Eşleştiricisinin ilk günlerinden beri bir sorun olmuştur.

Klasik Entity Framework’te, soğuk başlatmayı hızlandırmak için sözde görünüm oluşturma vardı. Modern Entity Framework Core için şimdiye kadar karşılaştırılabilir bir optimizasyon mekanizması olmamıştır. Microsoft bunu yalnızca şimdi Entity Framework Core 6.0 ile değiştirdi. View Generation’ın muadili Derlenmiş Model olarak adlandırılır.

Geliştiriciler, PowerShell komutunu kullanarak NuGet Paket Yöneticisi konsolunda Visual Studio içinde derlenmiş modeli oluşturur. Optimize-DbContext.

Visual Studio’nun dışında .NET CLI’yi kullanabilirsiniz:

dotnet ef dbcontext optimize

Her iki durumda da bağlam adı, ad alanı ve klasör için isteğe bağlı parametreler vardır.

Modeli derlemek, projenizde bir sınıf oluşturur ContextModel.cssınıf ContextModelBuilder.cs ve her biri bir sınıf AbcEntityType.cs varlık sınıfına göre. Bu sınıflar da derlenir.


Bununla birlikte, her şeyden önce, yöntem çağrısı ile bağlam sınıfındaki önceden derlenmiş model geçerlidir. UseModel() etkinleştir:

protected override void OnConfiguring(DbContextOptionsBuilder builder)
{
if (builder.IsConfigured) return;
builder.EnableSensitiveDataLogging(true);
builder.UseSqlServer(@"Server=ServerName;Database=DBName;" +
"Trusted_Connection=True;" +
"MultipleActiveResultSets=True;").
UseModel(ContextModel.Instance);
}

Bu, Entity Framework Core içeriğinin soğuk başlatma hızını artırır. Bu, özellikle daha büyük ve daha karmaşık nesne modellerinde belirgindir.

Ancak dikkatli olun: Derlenen model için kod üretimi, her model değişikliğinden sonra tekrar tekrar başlatılmalıdır! Ayrıca, genel sorgu filtreleri, değişiklik izleme proxy’leri ve yavaş yükleme gibi bazı Entity Framework Core özellikleri derlenmiş modellerde mevcut değildir.


()



Haberin Sonu
 
Üst