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

发布于 2024-08-06 22:34:38 字数 277 浏览 4 评论 0原文

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

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

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

有人可以解释为什么吗?

干杯,

戴夫

I have the following pretty simple linq query querying a linq to entities edmx.

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

In Sql Server Profiler I can see that the exact same select query is being sent twice.

Can someone explain why?

Cheers,

Dave

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

苯莒 2024-08-13 22:34:38

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

Is ent.Inspectors an IEnumerable containing two items?

残月升风 2024-08-13 22:34:38

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

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

Because of deffered execution, the results of the query aren't cached locally. To prevent this, add a call to ToArray in the query.

Also, from i in ent.Inspectors select i is a no-op; you should write ent.Inspectors.OrderBy(s => s.Surname)....

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文