【发布时间】:2011-05-17 06:44:07
【问题描述】:
我有一个接口 IRepository 和一个实现 EFRepository。
我使用结构映射注入来获取存储库实现。
现在 EFRepository 有没有参数的构造函数,所以 structuremap 知道很容易在 EFRepository 上检索实例。
现在我需要更改存储库实现,以便它接收包含工作单元的构造函数参数。
在这种情况下我的问题是,我如何使用结构映射来返回使用工作单元初始化的实例?
示例
直到今天我还在使用:
using(IUnitOfWork uow=UnitOfWork.current) {
IRepository rep = ObjectFactory.GetInstance<IRepository<T>>();
//repository operations that uses UnitOfWork.current that initialized above
}// here dispose of UnitOfWork.current
现在我想使用:
using(IUnitOfWork uow=new UnitOfWork()) {
//Not sure is this is how I tell sructure map to use contractor that
//get IUnitOfWork)
IRepository rep = ObjectFactory.GetInstance<IRepository<T>>(uow);
//repository operations that uses uow that initialized above
}// here dispose of UnitOfWork
【问题讨论】:
-
澄清一下,您是说要在构造函数中添加参数,并且要确保 StructureMap 可以注入适当的依赖项?
标签: c# entity-framework repository structuremap unit-of-work