【发布时间】:2014-04-17 19:44:58
【问题描述】:
我正在关注这个Contoso University MVC NTier University 架构。但我不知道如何将其设置为多个数据库上下文。在我的 MVC 应用程序中,我有两个我经常访问的数据库。
- Project.Common(这是放置 IUnitOfWork、IRepository 等通用基础架构的地方)
- 项目.数据
- Project.Models
- 项目服务
- Project2.Data
- Project2.Models
- Project2.Service
- Project.Web
当我在 Global.asax 中使用 UnityContainer 时。我注册了两个 Dbfactory 和 Uow 之类的:
IUnityContainer oContainer = new UnityContainer()
// ***** PROJECT *****
.RegisterType<IProjectDBFactory, ProjectDBFactory>(new HttpContextLifetimeManager<IProjectDBFactory>())
.RegisterType<IUnitOfWork, ProjectUow>(new HttpContextLifetimeManager<IUnitOfWork>())
.RegisterType<IRepoPRJTABLE, RepoPRJTABLE>(new HttpContextLifetimeManager<IRepoPRJTABLE>())
.RegisterType<IServiceRepository<PRJTABLE>, ServicePRJTABLE>(new HttpContextLifetimeManager<IServiceRepository<PRJTABLE>>())
// ***** PROJECT2 *****
.RegisterType<IProject2DBFactory, Project2WebDBFactory>(new HttpContextLifetimeManager<IProject2DBFactory>())
.RegisterType<IUnitOfWork, Project2Uow>(new HttpContextLifetimeManager<IUnitOfWork>())
.RegisterType<IRepoPRJ2TABLE, RepoPRJ2TABLE>(new HttpContextLifetimeManager<IRepoPRJ2TABLE>())
.RegisterType<IServiceRepository<PRJ2TABLE>, ServicePRJ2TABLE>(new HttpContextLifetimeManager<IServiceRepository<PRJ2TABLE>>())
我可以完美地查看数据。但是当我查看 ServicePRJ 时,它的 Unitofwork 上下文是 PROJECT2 的。请帮助我......我想我需要将上下文传递给单元,但我很难构建我的代码。我是使用这种架构编码的新手,是使用 unitycontainer 的新手,是 mvc 的新手。请帮我。
【问题讨论】:
标签: c# asp.net-mvc-4 architecture unity-container n-tier-architecture