作業ユニットパターンを使用したビジネスレイヤーとリポジトリの接続
私の質問は、Stack Overflowでのこれと同様です。ビジネスレイヤー内で作業ユニット/リポジトリを使用する正しい方法は何ですか? シナリオ: .Netソリューション DBからオブジェクトを取得するために使用されるIRepository IUnitOfWorkを使用して複数のリポジトリ間でトランザクションを許可 これは私には理にかなっていて、私はこれらの線に沿ってうまく機能する何かを実装しました。ここで、ビジネスロジックレイヤーを紹介したいと思いますが、3つの要素(BLL、UnitOfWork、およびリポジトリ)を整理することに頭が悩んでいます。 私の理解: リポジトリ-データの取得、操作 UnitOfWork-永続性 BLL-ビジネスに関連するロジック(「現実世界」)(その用語は嫌いです!) ASP.Net MVCフロントエンドがあるとします。 BLLはどのように見え、それを使用するMVCコントローラーはどのように見えますか? 参考までに:私のIUnitOfWork / IRepository実装が私の混乱の根本的な原因であるのではないかと思います。 public class IRepository<T> { private IObjectSet<T> objSet; public IRepository<T>(IUnitOfWork uow) { objSet = uow.CreateObjectSet<T>(); } public IQueryable<T> Add(T entity) { objSet.Add(entity); } //etc. etc. for delete, attach, getall } したがって、BLLがある場合は、それをIUnitOfWorkに渡して、必要なIRepositoryインスタンスを作成できるようにする必要があるように感じます。しかし、BLL(フロントエンドとは別のDLL)は、ビルドするIRepositoryの実装をどのように「認識する」のでしょうか。