8

Webアプリケーションの主要セクションごとに複数のXXX : DbContextクラスを持つことをお勧めします(データベースに少なくとも50個のテーブルを持つ大きなものだとします)。たとえば、MembershipContext、BlogContext、StoreContextなどです。または、dbアクセス関連のすべての項目に対して単一のDatabaseContextを持つ方が便利です。単一のWebアプリケーション用の複数のDbContextクラス。良いか悪いか?

答えて

8

複数のDbContextクラスを使用すると、クロストランザクションが複雑になることを意味します(この問題の解決策は、Webの例http://pastebin.com/YEDqyH0nを参照してください)。それはすべて、設計したいアーキテクチャと分離に依存します。

とにかく、リポジトリとUnitOfWorkのパターンを見て、DbContextの使い方を抽象化したレイヤーを作成する必要があります。ここをクリックしてください:Multiple DbContexts in N-Tier ApplicationここでEF and repository pattern - ending up with multiple DbContexts in one controller - any issues (performance, data integrity)? ASP.NET MVCを使用している場合。

50個のテーブルでは、複数のDbContextを持つことが正当化されると思います。だから私は複数のDbContextを使用することをお勧めします。しかし、RepositoryとUnitOfWorkパターンを使ってラップして、他のレイヤーの実際の実装とは無関係にする必要があります(このようにして後で簡単に変更でき、signle DbContextのみを使用するなど)。

私は役立つことを願っています。

+7

DbContextは、すでにリポジトリと作業単位のパターンを実装しています。 –

関連する問題