0

我试图了解基于该UnitOfWork模式构建的现有系统。有很多存储库都IUnitOfWork在其构造函数中接受一个,以便服务层可以执行多个存储库调用,然后选择何时提交更改。

当前的服务代码可能如下所示:

using (var uow = UnitOfWork.Start())
{
    var orderRepository = new OrderRepository(uow);
    var productRepository = new ProductRepository(uow);
    orderRepository.DoSomething();
    productRepository.DoSomethingElse();
    uow.Persist();
}

如何在服务层中引入真正的依赖注入并仍然保持UnitOfWork模式?

4

1 回答 1

0

我会使用工厂模式。在构造函数中注入工厂并重写:

using (var uow = this.unitOfWorkFactory.Create().Start())
{
    var orderRepository = new OrderRepository(uow);
    var productRepository = new ProductRepository(uow);
    orderRepository.DoSomething();
    productRepository.DoSomethingElse();
    uow.Persist();
}

此致

于 2013-02-28T20:20:45.873 回答