Asp.net mvc 选择具有存储库+工作单元模式的查询

Asp.net mvc 选择具有存储库+工作单元模式的查询,asp.net-mvc,design-patterns,repository-pattern,unit-of-work,Asp.net Mvc,Design Patterns,Repository Pattern,Unit Of Work,我读了很多关于工作单元和存储库模式的书。 我从未见过的是如何检索数据。UoW对于Select语句没有意义 我将在n层体系结构中使用asp.net MVC,这一点我在任何教程或文章中都没有看到: 在何处以及如何使用这些模式调用SELECT语句(带/不带内部联接)? 直接从服务层调用DataContext?工作单元用于更新模型。事实上,你并不需要它。使用存储库模式时,数据库相关的所有选择、连接等都是存储库实现的一部分 存储库使用者,例如控制器,在DI容器注入具体的存储库时,将对存储库接口的依赖作为抽

我读了很多关于工作单元和存储库模式的书。 我从未见过的是如何检索数据。UoW对于Select语句没有意义

我将在n层体系结构中使用asp.net MVC,这一点我在任何教程或文章中都没有看到:

在何处以及如何使用这些模式调用SELECT语句(带/不带内部联接)?
直接从服务层调用DataContext?

工作单元用于更新模型。事实上,你并不需要它。使用存储库模式时,数据库相关的所有选择、连接等都是存储库实现的一部分

存储库使用者,例如控制器,在DI容器注入具体的存储库时,将对存储库接口的依赖作为抽象。使用者从不从数据库中看到db或其他东西,它只看到存储库方法,这些方法应该返回控制器需要并理解的对象,即使您返回一个ROM实体,控制器也不知道它是一个实体


一件重要的事情是理解存储库接口定义的是什么而不是如何。实现涉及如何实现。这意味着控制器不生成查询,而存储库生成查询。你只要问它你想要什么,它就会神奇地传递。

我看到的大多数存储库模式示例都使用一条SELECT语句。从来都不是复杂的查询。。即使是一个复杂的查询,所有的子句:GROUPBY、ORDERBY、filters,都会进入存储库方法。。。或者这些过滤器和订购。。是否适合服务层?所有与查询相关的内容都会进入repo的方法中。最多这些方法可以接受分页和排序参数,以确定您的答案,那么您是否应该使用UoW进行查询?假设我有一个服务——我觉得同时注入UoW for DB和单个存储库可能是一种不好的做法,因为开发人员可能会意外地将存储库用于插入或更新,而不是UoW。