0

由于 EF 5.0 已经实现了 UnitOfWork 模式,所以我想要它而不是创建自己的 IUnitOfWork 类来维护事务。但是我在互联网上找到的大多数示例都是直接使用单独的 UnitOfWork 而不是 EF。

我正在尝试使用 IoC(温莎城堡)来实现这一点。您能否提供一些示例或实施此操作的指导。

提前致谢

4

1 回答 1

0

您没有提供有关当前 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

于 2013-07-11T18:04:11.167 回答