由于EF 5.0已经实现了UnitOfWork模式,所以我想要它而不是创建自己的IUnitOfWork类来维护事务。但我在互联网上找到的大多数例子都是直接使用Separate UnitOfWork而不是EF。
我正在尝试使用IoC(城堡windsor)实现这一点。能否请您提供一些实施此案的样本或指示。
提前致谢
西
答案 0 :(得分:0)
您没有提供有关当前Windsor设置的任何详细信息或U5W在EF5中的外观(我不使用它),但基于此[1],它们似乎在其数据库上下文中实现了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