asf*_*adf 15 linq asp.net asp.net-mvc entity-framework
因此,在使用上述框架构建应用程序时,我已经被建议几次禁用延迟加载,并且ToList()将强制执行我的存储库中的查询.有人告诉我,如果我使用AsEnumerable(),我会避免遇到某些"陷阱".
然而,在最近的一个问题中,我在我的代码示例中包含了一堆ToList(),并且让很多人放心,确保IEnumerable更好地返回.
我现在彻底困惑,至少可以说.
我应该在我的存储库中返回IEnumerable,然后在我的视图模型中将它们转换为List吗?我应该像以前一样在我的存储库中直接使用ToList()吗?我是否想首先启用延迟执行?
Jiminy圣诞节......
编辑: 所以,基于之前的建议,我禁用了延迟加载,我是否应该重新启用它,从我的存储库返回IEnumerable/IQueryable,并在需要时将集合转换为视图模型中的List?
以下答案之一将IEnumerable与急切执行相关联,而我的印象是只有ToList()会强制立即执行查询.
Rob*_*vey 16
如果出现以下情况,请在您的存储库中调用ToList()
,IEnumerable
如果出现以下情况,请返回IQueryable
或IEnumerable
通过AsEnumerable()
存储库:
另见
http://thinkbeforecoding.com/post/2009/01/19/Repositories-and-IQueryable-the-paging-case
归档时间: |
|
查看次数: |
3572 次 |
最近记录: |