ASP.NET MVC-使用UnitOfWork

问题描述 投票:2回答:3

我目前正在使用一个由6层组成的Web应用程序:

  • Web(对ViewModels和Controllers的引用)
  • ViewModels
  • 控制器
  • 服务(对数据和实体的引用)
  • 数据(对实体的引用)
  • 实体

[我正在尝试实现“ UnitOfWork”模式,因此我有一个由DI为该工作注入的类,这使得我在控制器中的actionresult中可以执行.commit()。数据库完成。

现在是我的问题...该UnitOfWork类应放在哪里?现在是在我的数据层中,但是这需要控制器层引用数据层和服务层,这在我看来很奇怪……我应该将UnitOfWork类/接口移到服务层并使用DI吗?] >

我当前正在使用一个由6层组成的Web应用程序:Web(对ViewModels和Controllers的引用)ViewModels Controllers Services(对数据和实体的引用)Data(对...的引用)>

asp.net asp.net-mvc separation-of-concerns unitofworkapplication
3个回答
5
投票

除非您在Data

层中使用存储库模式,否则就在浪费时间。

0
投票

我实现了我的IUnitOfWork类,可以直接传递到我的MVC控制器中(通过Castle Windsor注入)。然后,我让我的控制器将其传递给它实例化的任何服务对象。


0
投票

IUnitOfWork应该是数据层的接口。当请求进入Controller时,请调用服务方法,如果需要CRUD,则应调用UnitOfWork。您可以通过在Global.asax Request_Start中调用UnitOfWork来使用每个请求的会话,并在Request_End中进行提交。

© www.soinside.com 2019 - 2024. All rights reserved.