|
1
19
是的,如果您使用的是Linq to SQL,这是可能的。您所需要做的就是使用投影将您想要的数据提取到您选择的对象中。你不需要所有这些带有接口的装饰,如果你使用一个特定于视图的模型(听起来你需要),创建一个viewModel类。 我们称之为ProductSummaryView:
现在从存储库中加载它:
这将拉动价格高于100的所有产品,并返回iqueryable。此外,由于您只要求两列,所以在SQL调用中只指定两列。 |
|
2
3
不要回避你的问题,但最终由你决定你的存储库将如何工作。
高层的前提是控制器将指向某个存储库接口,比如
现在,如果您正在寻找对Rob具体实现的批评,我不确定这与堆栈溢出有什么关系。 |
|
|
3
2
虽然可以使用查询(与存储库模式无关)基于该对象的列子集的查询来填充对象的一部分,但这不是“正常”操作的方式。 如果要返回对象的子集,通常只创建一个具有该属性子集的新类。这通常(在MVC世界视图中)被称为视图模型类。然后,使用投影查询来填充这个新类。 无论您是否使用存储库模式,您都可以完成所有这些工作。我认为这两个概念之间没有冲突的重叠。 |
|
4
2
延迟加载记住,iqueryable将所有加载延迟到最后一个负责的时刻。您可能不需要使用LINQ操作符加载所有数据来获得所需的数据。;) 考虑到视图中域类的依赖性,我会说不,为此使用一个ViewModel模式。它更易于维护;您可以使用 AutoMapper 为了避免映射问题,它们在复合视图场景中非常灵活:) 根据新问题…答案是肯定的,你可以。正如Rob Conery所说,使用投影;):
|
|
|
Andrus · 如何在Linux中阅读期刊 10 月前 |
|
|
Miranda · 读取xml文件时路径错误中有非法字符 10 月前 |
|
|
Primdonm · 如何将自定义列表中的字符串值格式化为货币格式? 1 年前 |
|
|
Kiryl · Sitecore中自己的控制器 1 年前 |
|
|
Farid · 如何从数据库中填充Resource.resx文件值? 1 年前 |