Webアプリケーションの主要なセクションごとに複数のXXX : DbContext
クラスを用意することをお勧めしますか(データベースに少なくとも50個のテーブルがある大きなクラスであることを考慮して)?例:MembershipContext、BlogContext、StoreContextなど。または、DatabaseContext
すべてのデータベースアクセス関連のものに対して単一のものを用意する方が便利です。
1 に答える
複数の DbContext クラスを使用することは、クロストランザクションを複雑にすることを意味します (この問題の解決策は、Web 上の例http://pastebin.com/YEDqyH0nで見つけることができます) が、正当化される場合があります。それはすべて、アーキテクチャと、設計したい分離に依存します。
とにかく、Repository および UnitOfWork パターンを調べて、DbContext の使用方法を抽象化するレイヤーを用意する必要があります。ここを見てください: N 層アプリケーションの複数の DbContextsとここではEF とリポジトリのパターン - 1 つのコントローラーで複数の DbContexts になる - 問題 (パフォーマンス、データの整合性) はありますか? ASP.NET MVC を使用する場合。
50 個のテーブルの場合、複数の DbContext を持つことは正当化されると思います。したがって、複数の DbContext を使用することをお勧めします。ただし、Repository および UnitOfWork パターンを使用してそれらをラップし、他のレイヤーの実際の実装から独立させる必要があります (このように、後で気が変わって、たとえば単一の DbContext のみを使用することができます)。
それが役立つことを願っています。