var test1 = DB.UnAuthPriorityLevelTypes.AsEnumerable();
var test2 = DB.UnAuthPriorityLevelTypes.AsQueryable();
var test3 = DB.UnAuthPriorityLevelTypes.ToList();
var test4 = DB.UnAuthPriorityLevelTypes.AsEnumerable();
var test5 = DB.UnAuthPriorityLevelTypes.AsQueryable();
在上述五个陈述中,如果我查看test1
和test2
中的值的计数,那么它是0,但是test3
,test4
,{ {1}}的计数值为3,应该是这种情况。为什么呢?
更新
即使test1显示为0结果,我也能够成功循环并获取值 我认为问题是由于EF的延迟加载行为,但我试图禁用它并运行它但没有去
test5
答案 0 :(得分:0)
由于Linq的延迟执行,您应该阅读AsEnumerable
和AsQueryable
作为要执行的查询的声明。
运行ToList
后,您强制执行查询,而datacontext将包含DB.UnAuthPriorityLevelTypes
中的所有行,因此Count将显示正确的数字,只要上下文不会改变没有处理。
LazyLoadingEnabled
标记会影响相关的相关行,请参阅此MSDN文章。