我正试图了解一个基于UnitOfWork
模式构建的现有系统。有很多存储库都在其构造函数中使用IUnitOfWork
,因此服务层可以执行多个存储库调用,然后选择何时提交更改。
当前的服务代码可能如下所示:
using (var uow = UnitOfWork.Start())
{
var orderRepository = new OrderRepository(uow);
var productRepository = new ProductRepository(uow);
orderRepository.DoSomething();
productRepository.DoSomethingElse();
uow.Persist();
}
如何在服务层中引入真正的依赖注入,并仍然保留UnitOfWork
模式?
答案 0 :(得分:0)
我会使用工厂模式。在构造函数中注入工厂并重写:
using (var uow = this.unitOfWorkFactory.Create().Start())
{
var orderRepository = new OrderRepository(uow);
var productRepository = new ProductRepository(uow);
orderRepository.DoSomething();
productRepository.DoSomethingElse();
uow.Persist();
}
祝你好运