8

Bir web uygulamasının her büyük bölümü için birden çok XXX : DbContext sınıfına sahip olmak iyi bir uygulamadır (veritabanında en az 50 tablo içeren büyük bir alan göz önüne alındığında)? Örneğin: MembershipContext, BlogContext, StoreContext vb. Veya tüm db erişimi ile ilgili şeyler için tek bir DatabaseContext olması daha uygundur.Çoklu DbContext sınıfları. İyi ya da kötü?

cevap

8

Birden çok DbContext sınıfı kullanmak, çapraz işlemlerin karmaşık olmasını (bu sorunla ilgili bir çözüm için web üzerinde bir çözüm bulabilirsiniz (örnek: http://pastebin.com/YEDqyH0n), ancak haklı olabilir. Her şey, mimarinize ve tasarlamak istediğiniz ayrıma bağlıdır.

Her durumda, DbContexts öğelerinizi nasıl kullanacağınız konusunda bir aşındırma katmanına sahip olmak için Depo ve UnitOfWork kalıplarına bakmalısınız. Burada bakın: ASP.NET MVC kullanıyorsanız Multiple DbContexts in N-Tier Application ve burada EF and repository pattern - ending up with multiple DbContexts in one controller - any issues (performance, data integrity)?.

50 tablo için birden çok DbContexts olması gerekebileceğini düşünüyorum. Bu yüzden birden fazla DbContexts kullanmanızı tavsiye ederim. Ancak, diğer katmanlardaki gerçek uygulamadan bağımsız olmak için Deposu ve UnitOfWork kalıplarını kullanarak sarmalısınız (bunun gibi fikrinizi daha sonra kolayca değiştirebilir ve yalnızca bir DbContext işareti kullanabilirsiniz).

Umarım bu yardımcı olur.

+7

DbContext zaten Deposu ve Çalışma Birimi kalıplarını uygulamaktadır! –

İlgili konular