我已经阅读了很多关于工作单元和存储库模式的内容。 我从未见过的是如何检索数据。 UoW对Select语句没有意义。
我将使用带有n层架构的asp.net MVC,这一点我从未在任何教程或文章中看到过:
使用这些模式在何处以及如何使用/不使用INNER JOIN调用SELECT语句? 从服务层直接调用DataContext?
答案 0 :(得分:3)
工作单元用于更新模型。确实,对于查询,你不需要它。使用存储库模式时,与数据库相关的所有内容(选择,连接等)都是存储库实现的一部分。
存储库使用者(例如Controller)依赖于存储库接口(抽象),而具体存储库由DI容器注入。消费者永远不会看到db或其中的东西,它只是看到应该返回控制器需要和理解的对象的存储库方法(即使你返回ROM实体,控制器也不知道它是一个实体)。
重要的是要了解存储库界面定义 WHAT 而不是 HOW 。实施涉及“如何”。这意味着控制器不会构建查询,而存储库也是如此。你只需要问它你想要什么,它神奇地传递。