ルック:複数のリポジトリとサービスを備えた.NET MVCコントローラ? (私はマネージャーの依存関係への依存性注入を使用しています)私のコントローラで
public RoleController(IRoleRepository roleRepository, ISiteRepository siteRepository, IUserRepository userRepository, IDbContext dbContext)
{
_roleRepository = roleRepository;
_siteRepository = siteRepository;
_userRepository = userRepository;
_dbContext = dbContext;
}
は多くの依存関係を持つクラスを持つことは、コードのにおいですか?右?
しかし、私の例では、Users
とSites
をRole
に関連付ける必要があります。この関連付けを行うには、これらの依存関係が必要です。
メーリングリストに参加している人の中には、あまりにも多くの依存関係があると、何かが間違っている可能性があるという兆候がありました。しかし、私は他の方法を見ません。私は自分の責任を分けた、そのような状況で何か治療する方法がわからないのですか?何か間違えている?
更新:
DbContextは私のUnitOfWorkであるので、私はリポジトリとDbContextを必要とし、リポジトリが保存されません。
この例は、GRIDを持つビュー内の関連付けのような他の機能を持つ単純なCRUDです。
アップデート2:
私は私のUI層がMVCであるアーキテクチャを使用しています。
通常は、すべてのエンティティではなく、集約ルートのリポジトリのみを作成します。私はあなたのドメインを知らないが、私の腸はリポジトリが多すぎると私に伝えます。さらに、なぜリポジトリとdbcontextが必要ですか?最後に、私は通常、「サービス」で「オーケストレーション」タイプのビジネス活動を行い、サービスにリポジトリなどを扱わせることを好みます。コントローラの依存関係は、サービスのみになります。 – Brook
@Brook更新を参照してください。 –
可能な複製[asp.net-mvcでは、コントローラに複数のリポジトリを注入するためにIOCを使用するよりエレガントな方法はありますか?](http://stackoverflow.com/questions/7311623/in-asp-net-mvc-より高度な方法で、iocからインジェクションへマルチプルリポジトリを使用すること) – Omar