由于 EF 5.0 已经实现了 UnitOfWork 模式,所以我想要它而不是创建自己的 IUnitOfWork 类来维护事务。但是我在互联网上找到的大多数示例都是直接使用单独的 UnitOfWork 而不是 EF。
我正在尝试使用 IoC(温莎城堡)来实现这一点。您能否提供一些示例或实施此操作的指导。
提前致谢
赛
由于 EF 5.0 已经实现了 UnitOfWork 模式,所以我想要它而不是创建自己的 IUnitOfWork 类来维护事务。但是我在互联网上找到的大多数示例都是直接使用单独的 UnitOfWork 而不是 EF。
我正在尝试使用 IoC(温莎城堡)来实现这一点。您能否提供一些示例或实施此操作的指导。
提前致谢
赛
您没有提供有关当前 Windsor 设置或 EF5 中的 UoW 外观的任何详细信息(我不使用它),但基于此 [1],他们似乎在其 db 上下文类上实现了 IUnitOfWork 接口。因此,在 Windsor 驱动的依赖注入模式中利用这一点似乎非常简单。您首先需要在容器中注册 IUnitOfWork 接口和实现。有多种方法可以在 Windsor 中注册组件。我更喜欢安装程序 [2] ......所以你最终会得到这样的结果:
public class YourInstaller : IWindsorInstaller
{
public void Install(IWindsorContainer container, IConfigurationStore store)
{
container.Register(Component.For<IUnitOfWork>().ImplementedBy<YourDbContext>());
}
}
然后你以某种方式将它注入到你的应用程序的服务中,例如:
public class YourService
{
public YourService(IUnitOfWork uow)
{
// rock out
}
}
[1] http://dumians.wordpress.com/2013/04/13/how-to-use-repository-and-unit-of-work-patterns-with-entity-framework/ [2] http:// docs.castleproject.org/Default.aspx?Page=Installers&NS=Windsor&AspxAutoDetectCookieSupport=1