![]() |
1
1
您可以通过返回IQueryables而不是ILists来实现。 ToList()导致查询立即执行,因为必须执行从IQueryable到IList的转换。 只要您返回IQueryables,延迟加载应该延迟执行,直到实际需要数据,即调用ToList()时。 目前我找不到引用,但我的理解是,如果您这样做,LINQtoSQL有机会优化它发送到服务器的sql。换句话说,它将最终读取这些记录:
|
![]() |
2
0
您可以尝试另一种方法来映射域对象以使其工作。问题是,无论您做什么(除非您将域对象中的列表更改为IQueryables),在映射时都会出现ToList()异常。 另一种方法是,通过创建自定义datacontext而不是使用设计器进行映射,让linq2Sql映射到POCO:),这样可以保持域模型干净,并让linq2Sql在正确的时间填充依赖项。请注意,进入这条路线有其自身的问题,但这是可以做到的。 这里有一个链接可以让你开始这条路线 |
![]() |
M.Sabzi · 如何在应用层实现随子集合创建? 7 年前 |
![]() |
JJ Yong · 继承的通用存储库问题 7 年前 |
![]() |
Utku · 实体框架,从多个表中获取数据并选择要显示的列 7 年前 |
![]() |
koryakinp · 基于实体类型的通用存储库应用过滤器 7 年前 |
![]() |
Pedro Lopes · 尝试通过存储库编辑数据库中的数据时获取验证 7 年前 |
![]() |
The Huff · IOption模式-单元测试和通过层 7 年前 |