Entity Framework Core için En İyi 10 Uygulama

Paylaş :

EF Core, bir nesne-ilişkisel eşleyici (ORM) işlevi görerek.NET geliştiricilerinin .NET nesneleri kullanarak bir veritabanıyla çalışmasına olanak tanır ve genellikle CRUD işlemlerini yapmak için ihtiyaç duydukları veri erişim kodunun çoğuna olan ihtiyacı ortadan kaldırır.

Entity Framework Core için En İyi 10 Uygulama

En İyi Uygulama 1- Endişelerin Ayrılması

Yalnızca veri katmanı projeleri EF'ye bağımlı olmalıdır. DbContext sınıfını DataLayer projesinin içinde tutmanız ve Veri Erişim Katmanında bulunması ve İş Katmanından Çağrılması gereken DbContext'i eklemek için bir uzantı yöntemi oluşturmanız gerekir.

DAL'de Uzatma Yöntemi
Denetleyici Katmanında Uzantı Yöntemini Çağırma

En İyi Uygulama 2- Bağlantı dizinizi güvenli hale getirin

Bağlantı dizelerini Appsettings.json, Web.config ve App.config gibi Ortam değişkenleri ve yapılandırma dosyaları yerine bir KeyVault'ta saklayın

En İyi Uygulama 3 - . AsNoTracking()

EF ayarlama seçeneklerinden biri .AsNoTracking() 'dir .
EF, sorgu tarafından döndürülen varlıklar için ek işleme veya depolama gerçekleştirmez. Ancak, bu varlıkları yeniden takmadan güncelleyemeyeceğiniz anlamına da gelir.

Genel Depoda AsNoTracking()

En İyi Uygulama 4 — Verimli Veri Güncelleme

EF Core Ranking'de güncellemeleri gerçekleştirmenin üç yolu
EFCore Güncellemesi > Ekli Güncelleme > Olağan Güncelleme
EFCore Güncellemesi en hızlısıdır

Normal Güncelleme: 4,5 saniyede 100 satır varlık nesnesi
Ekli Güncelleme: 3 saniyede 100 satır varlık nesnesi
EF Çekirdek Güncellemesi: 0,2 saniyede 100 satır varlık nesnesi
Genel depoda uygulama

En İyi Uygulama 5 - Verimli Veri Yükleme: En Hızlı Yükleme yöntemi

EF Core'a veri yüklemenin 3 yolu (
Yüklemeyi seçin en hızlısı) Yükleme > İstekli Yükleme > Geç Yükleme'yi seçin

Tembel Yükleme — varlıkları ve tüm alt varlıkları yükler
İstekli Yükleme — yüklenecek alt varlıkları belirtin
Yüklemeyi Seç — varlıkların ve alt varlıkların alanlarını belirtin

En İyi Uygulama 6 — Kullanıcı Ham SQL'i

Ham SQL genellikle son çare olarak kullanılmalıdır. EF'nin istediğiniz SQL'i oluşturamayacağından ve verilen sorgunun haklı çıkarması için performansın yeterince önemli olduğundan emin olduktan sonra. Ham SQL kullanmak, önemli bakım dezavantajları getirir.

örnek 1
Örnek 2

En İyi Uygulama 7 — Kartezyen Patlamadan Kaçının

Adından da anlaşılacağı gibi, kartezyen bir ürünle, yani JOIN'lerle ilgisi var. Bire-çok ilişkide bir JOIN gerçekleştirirken, tek taraflı satırlar N kez çoğaltılır, burada N, çok taraflı eşleşen kayıtların sayısıdır.

1 Ürün Grubuna 1000 Ürünle KATILMA Örneği

En İyi Uygulama 8 — Zaman Uyumsuz Çağrılar

eşzamanlı API'ler yerine her zaman eşzamansız API'lerin kullanılması önemlidir (örn. SaveChanges yerine SaveChangesAsync).

Eşzamanlı API'ler, veritabanı G/Ç süresi boyunca iş parçacığını bloke ederek, iş parçacıklarına olan ihtiyacı ve gerçekleşmesi gereken iş parçacığı bağlam anahtarlarının sayısını artırır.

Genel Bir Depoda SaveChangesAsync()

En İyi Uygulama 9 — LINQ sorgularınızı optimize edin

C# kodu t-SQL'e dönüştürülemez. Lambda ifadeleri yazdığınızdan emin olun, aksi takdirde C# kodunuz veriler alındıktan sonra yürütülür ve bu verimli değildir.

optimize edilmemiş LINQ örneği

En İyi Uygulama 10 — Verimli Veritabanı Yapısı

EF Core'un verimli tablolar oluşturmasına izin vermek için veri açıklama öznitelikleri sağlamamız gerekir, aksi takdirde EF Core, her zaman boş değere izin veren alanlara sahip ve dize için nvarchar(max) gibi belirli bir veri türünün maksimum boyutuna sahip tablolar oluşturacaktır.

Etkili bir tablo oluşturmak için bir sınıf örneği

Hesabınızı yönetmek için giriş yapın

veya