【发布时间】:2011-09-01 02:21:42
【问题描述】:
我正在使用实体框架(代码优先)、存储库和工作单元模式,基本上如下所述: Entity Framework 4 CTP 4 / CTP 5 Generic Repository Pattern and Unit Testable
我还使用 StructureMap 来管理我的对象实例,并且我有一些类似这样的代码来连接 EF dbcontext 和工作单元:
For<DbContext>().HybridHttpOrThreadLocalScoped().Use<MyDbContext>();
For<IUnitOfWork>().HybridHttpOrThreadLocalScoped().Use<UnitOfWork>();
我还有一个通用的Repository<T>,它目前知道MyDbContext 实例。现在我需要能够支持多个数据库,从而支持多个 DbContext。我正在考虑尝试将我的IUnitOfWork 调整为IUnitOfWork<T>,其中T 是要使用的DbContext。但是我的存储库还需要知道要使用哪个DbContext,那么我是否必须使其具有双重通用性(例如Repository<TEntity,TDbContext>)?
使用我正在使用的 UnitOfWork 模式支持多个数据库的最佳、最简单的方法是什么?
【问题讨论】:
-
所有数据库的数据库结构(相同的表等)是否相同?
-
不,它们完全不同。
标签: entity-framework repository-pattern unit-of-work