Mehrere DbContext-Klassen für eine einzelne Webanwendung. Gut oder schlecht?

8

Ist es eine gute Übung, mehrere XXX : DbContext -Klassen für jeden Hauptabschnitt einer Webanwendung zu haben (wenn man bedenkt, dass es eine große Datenbank mit mindestens 50 Tabellen ist)? Zum Beispiel: MembershipContext, BlogContext, StoreContext usw. Oder es ist bequemer, eine einzige DatabaseContext für alle db access-bezogenen Sachen zu haben.

    
Grief Coder 17.06.2012, 16:16
quelle

1 Antwort

8

Die Verwendung mehrerer DbContext-Klassen führt zu komplizierten Cross-Transaktionen (Sie können hier eine Lösung für dieses Problem finden, hier ein Beispiel Ссылка ) kann gerechtfertigt sein. Es kommt auf Ihre Architektur und die Trennung an, die Sie entwerfen möchten.

Jedenfalls sollten Sie sich die Repository- und UnitOfWork-Muster ansehen, um eine Abstraktionsebene für die Verwendung Ihrer DbContexte zu erhalten. Sehen Sie hier: Mehrere DbContexte in der N-Tier-Anwendung und hier EF und Repository-Muster - am Ende mit mehreren DbContexte in einem Controller - Probleme (Leistung, Datenintegrität)? , wenn Sie ASP.NET MVC verwenden.

Bei 50 Tabellen kann es meiner Meinung nach gerechtfertigt sein, mehrere DbContexte zu haben. Daher würde ich empfehlen, mehrere DbContexte zu verwenden. Sie sollten sie jedoch mithilfe der Repository- und UnitOfWork-Muster einbinden, um unabhängig von der tatsächlichen Implementierung in den anderen Layern zu sein (so könnten Sie später Ihre Meinung ändern und nur einen signierten DbContext verwenden).

Ich hoffe, das hilft.

    
Jason De Oliveira 17.06.2012, 17:49
quelle