应该调用UOW commit方法的地方在哪里?

时间:2011-10-25 04:15:54

标签: asp.net-mvc-3

在我们的应用程序中,我们使用工作单元,存储库模式,MVC3,EF4 POCO ..所以我认为我们应该使用工作单元提交方法@服务层,因为域逻辑会去那里。所以你能给我一些吗?建议它

1 个答案:

答案 0 :(得分:1)

不,IMO 控制器应该执行提交,因为它负责更新模型。

虽然服务层确实可以调用域/存储库上的方法,但它只响应来自Controller的请求。

只有Controller知道它何时完成,所以它应该调用Commit。通常,这是在执行重定向之前的操作方法结束时。

在Web方案中,每个HTTP请求通常只应有一个工作单元,而每个HTTP请求可能有多个服务

所以我和大多数人做的是为每个HTTP请求实例化一个新的UoW,并将其传递给Repository,这样即使你有多个存储库,它们仍然被一个UoW(也称为数据库连接)包裹。 / p>

理想情况下,您应该使用DI / IoC容器来执行此操作。