Linq to Entities查询命中数据库两次

时间:2009-10-08 15:36:34

标签: c# asp.net linq linq-to-entities sqlprofiler

我有以下非常简单的linq查询查询linq到实体edmx。

(from i in ent.Inspectors select i).OrderBy(s => s.Surname).Skip((page - 1) * count).Take(count).ToList();

在Sql Server Profiler中,我可以看到完全相同的选择查询被发送两次。

有人可以解释原因吗?

干杯,

戴夫

2 个答案:

答案 0 :(得分:1)

ent.Inspectors是一个包含两个项目的IEnumerable吗?

答案 1 :(得分:0)

由于延迟执行,查询结果不会在本地缓存。要防止这种情况,请在查询中添加对ToArray的调用。

此外,from i in ent.Inspectors select i是无操作的;你应该写ent.Inspectors.OrderBy(s => s.Surname)...