我正在使用 EF4 的服务层/存储库/工作单元模式构建一个 MVC 应用程序。
我对逻辑有点困惑。我知道重点是解耦系统,但我有点困惑。
因此,MVC 控制器调用服务来填充视图模型。那么可以肯定地说 MVC 应用程序耦合到服务层吗?
然后服务层调用存储库来获取并持久化对象。那么可以肯定地说服务层依赖于存储库吗?
存储库利用 EF4 获取数据并将其保存到 SQL Server,因此我假设存储库依赖于 EF4,而 EF4 又依赖于 SQL Server。
工作单元都适合在哪里。
请问有什么例子吗?
谢谢!!
我开始将工作单元隐藏在较低层的某个位置,但这是错误的方法。经过一些经验我的看法是:
- 在整体应用程序的情况下,工作单元应该可由控制器和较低层访问。
- 如果是分布式应用程序(UI 和 BL 位于不同的服务器上),UnitOfWork 应该可以由业务层门面(远程调用的服务层)和较低层访问。
原因是提到的层定义了什么是“业务事务”=什么是当前工作单元。只有这一层知道何时要将更改提交到数据存储。这样做可以实现服务组合(代码重用)。我讨论过类似的问题here https://stackoverflow.com/questions/4907857/unitofwork-implementation/4913336#4913336 and here https://stackoverflow.com/questions/5026265/where-does-unit-of-work-belong-w-ef4-ioc-unity-and-repository/5026857#5026857.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)