带有CastleWindsor的EntityFramework 5.0

时间:2013-07-11 11:46:40

标签: entity-framework-5 castle-windsor

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

我正在尝试使用IoC(城堡windsor)实现这一点。能否请您提供一些实施此案的样本或指示。

提前致谢

西

1 个答案:

答案 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