我的 Linq to SQL 查询分页逻辑未在数据库中执行

发布于 2024-08-14 05:33:48 字数 136 浏览 10 评论 0原文

如何使 Linq to SQL 查询逻辑在服务器上执行?

我创建了一个 Linq 查询并将其作为 IEnumerable 返回。查询的后续操作(例如 .Count() 或 .Take(5))在 CLR 中的客户端上计算,而不是在服务器上计算。

How can I make my Linq to SQL query logic execute on the server?

I have a created a Linq query and returned it as an IEnumerable. Subsequent operations on the query such as .Count() or .Take(5) are evaluated on the client in CLR, rather than on the server.

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

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

发布评论

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

评论(2

十秒萌定你 2024-08-21 05:33:48

转换为 IEnumerable 将导致执行查询 - 因此数据现在位于客户端。

如果要在服务器端执行分页,则应该在 IQueryable 仍处于后期执行时执行这些操作。

Converting to IEnumerable will cause the query to be executed - as a result the data is now on the client side.

If you want to execute paging on the server side, you should perform those operations while it is still a late executing IQueryable.

落日海湾 2024-08-21 05:33:48

IEnumerable 就是问题所在。将 Linq.DataQuery 作为 IQueryable 返回允许 Linq to SQL 向查询添加其他操作。当我描述问题时就弄清楚了这一点。

IEnumerable was the problem. Returning the Linq.DataQuery as an IQueryable allows Linq to SQL to add additional operations to the query. Figured this out as I was describing the problem.

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