+1ゴリラ、いくつかの商品ポイントが作られました。以下の考えを追加します。
web/mvc シナリオでは、数十のリポジトリを使用し、これらのリポジトリにコンテキストを挿入します。リポジトリ基本クラスを使用します。コンストラクターでコンテキストを使用する UoW クラスもあります。Unit Of Work クラスには、コンテキストでサポートされているすべてのリポジトリへの参照が含まれています。また、境界付けられたコンテキストも使用します。これは、この件に関する Julie Lerman のサンプル ブログです。
http://www.goodreads.com/author/show/1892325.Julia_Lerman/blog
そうです、複数のコンテキストを使用し、複数のリポジトリを使用することは完全に理にかなっています。複数の Unit of Work クラスを使用することもできますが、UoW クラスの同時使用については別の議論です。
ADDING SAMPLE code as requested: このサンプルは、ベース LuW クラスから継承するいくつかの LuW クラスの 1 つです。現在の状態と使用する DBContext が注入されます。(またはデフォルト) リポジトリは、CORE プロジェクトからのインターフェイスです。LuW クラスは DAL プロジェクトにあります。
ベースLuWは....のようなものです
public interface ILuw : ILuwEvent, IDisposable
{
IBosCurrentState CurrentState{ get; set; }
OperationStatus Commit();
}
ルウ級そのもの。
namespace XYZ.DAL
{
public class LuwBosMaster : Luw, ILuwBosMaster
{
public LuwBosMaster(DbContext context, IBosCurrentState currentState)
{
base.Initialise(context,currentState);
}
public LuwBosMaster()
{
base.Initialise(GetDefaultContext(), BosGlobal.BGA.IBosCurrentState);
}
public static DbContextBosMaster GetDefaultContext()
{
return new DbContextBosMaster("BosMaster");
}
//MasterUser with own Repository Class
private IRepositoryMasterUser _repositoryMasterUser;
public IRepositoryMasterUser RepMasterUser
{ get { return _repositoryMasterUser ?? (_repositoryMasterUser = new RepositoryMasterUser(Context, CurrentState)); } }
//20 other repositories declared adn available within this Luw
// Some repositories might address several tables other single tables only.
// The repositories are based on a base class that common generic behavior for each MODEL object
基本的な考え方は理解できると思います...