ebb*_*ebb 2 asp.net asp.net-mvc separation-of-concerns unitofworkapplication
我目前正在开发一个由6层组成的网络应用程序:
我正在尝试实现一个"UnitOfWork"模式,因此我有一个由DI为该作业注入的类,这使得在我完成时可以在控制器的actionresult中执行.commit()数据库.
现在是我的问题......这个UnitOfWork课程应该放在哪里?它现在在我的数据层中,但是需要Controller层引用数据层和服务层,这在我看来很奇怪......我应该将UnitOfWork类/接口移动到服务层并使用DI吗?
除非您在数据层中使用存储库模式,否则会浪费您的时间.
UoW的目的是处理多个Repository实例的更改,这可以通过以下方式完成:
工作单元做两件事:
Commit()方法完成所有设置有点棘手,但是一旦完成,流程应如下所示:
本质上,每个层在其构造函数中采用"下一层"的实例.一切都应该是DI和界面驱动的.UoW并不依赖于任何东西 - 但是Repository依赖于它来持久化到"内部存储器"(ORM),然后UoW"Commit"会将更改推送到数据库(基本上包含"SaveChanges"方法).
由于工作单元是基础架构/持久性/数据库/事务性问题,因此它应该进入您的数据层.只应由控制器引用.
HTH.
| 归档时间: |
|
| 查看次数: |
738 次 |
| 最近记录: |