3

我想知道我应该在哪里使用工作单元?为什么?

  • 存储库级别?但是,如果您需要 2 个存储库怎么办?
  • 服务水平 ?但是如果您需要重用其他服务方法怎么办?
  • 控制器级别 ? 但是,如果您不想在控制器中添加任何逻辑怎么办?

想知道它在哪里最好看,应该在哪里使用。我正在使用类似的实现:

using (var uow = UnitOfWorkFactory.Create())
{
... transaction go here
}

(我正在使用带有实体框架的 ASP.NET MVC 3)

谢谢。

4

1 回答 1

4

一个工作单元允许您在多个存储库中执行多个操作并Save()一次调用所有这些操作,这些调用SaveChanges()会将工作单元转换为事务。如果在您的Save()呼叫期间发生任何故障,则操作将回滚。

因此,在您需要的任何地方使用工作单元,以确保在数据事务期间不会损坏某些内容。当您想推迟事务直到完成一组操作时,基本上使用一个工作单元。

这篇文章很好地概述了实体框架打算如何使用工作单元。

于 2011-02-08T13:04:51.543 回答