在我们的应用程序中,我们使用工作单元,存储库模式,MVC3,EF4 POCO ..所以我认为我们应该使用工作单元提交方法@服务层,因为域逻辑会去那里。所以你能给我一些吗?建议它
答案 0 :(得分:1)
不,IMO 控制器应该执行提交,因为它负责更新模型。
虽然服务层确实可以调用域/存储库上的方法,但它只响应来自Controller的请求。
只有Controller知道它何时完成,所以它应该调用Commit。通常,这是在执行重定向之前的操作方法结束时。
在Web方案中,每个HTTP请求通常只应有一个工作单元,而每个HTTP请求可能有多个服务。
所以我和大多数人做的是为每个HTTP请求实例化一个新的UoW,并将其传递给Repository,这样即使你有多个存储库,它们仍然被一个UoW(也称为数据库连接)包裹。 / p>
理想情况下,您应该使用DI / IoC容器来执行此操作。