我目前正在使用一个由6层组成的Web应用程序:
[我正在尝试实现“ UnitOfWork”模式,因此我有一个由DI为该工作注入的类,这使得我在控制器中的actionresult中可以执行.commit()。数据库完成。
现在是我的问题...该UnitOfWork类应放在哪里?现在是在我的数据层中,但是这需要控制器层引用数据层和服务层,这在我看来很奇怪……我应该将UnitOfWork类/接口移到服务层并使用DI吗?] >
我当前正在使用一个由6层组成的Web应用程序:Web(对ViewModels和Controllers的引用)ViewModels Controllers Services(对数据和实体的引用)Data(对...的引用)>
除非您在Data
层中使用存储库模式,否则就在浪费时间。我实现了我的IUnitOfWork
类,可以直接传递到我的MVC控制器中(通过Castle Windsor注入)。然后,我让我的控制器将其传递给它实例化的任何服务对象。
IUnitOfWork应该是数据层的接口。当请求进入Controller时,请调用服务方法,如果需要CRUD,则应调用UnitOfWork。您可以通过在Global.asax Request_Start中调用UnitOfWork来使用每个请求的会话,并在Request_End中进行提交。