【发布时间】:2017-06-19 11:46:39
【问题描述】:
我正在使用工作单元模式,正如article 中所述。文章解释说,每个服务都应该注入一个 UnitOfWork:
private readonly IUnitOfWork _unitOfWork;
此外,服务必须有一个公共方法来提交工作单元操作:
public void Save()
{
_unitOfWork.Commit();
}
Save 方法只能由调用服务的 (webapi) 控制器调用。
但这是我的担忧:
1) 控制器可以通过数据库更新调用多个服务,在这种情况下,它应该为每个服务调用 Save()?如果需要回滚怎么办?
喜欢:
[HttpGet]
public IHttpActionResult UpdateArchive()
{
_service1.DoUpdate();
_service1.Save();
_service2.DoUpdate();
_service2.Save();
}
如果 service2.Save 失败怎么办?
2)如果一个服务调用另一个服务,控制器如何知道调用哪个Save?
我对这个工作单元有点困惑。
【问题讨论】:
标签: c# asp.net entity-framework repository-pattern