【发布时间】:2012-04-26 02:41:04
【问题描述】:
有没有一种方法可以获取复杂 Linq 查询的行数和数百万条记录 无需两次访问数据库或编写 2 个单独的查询??
我可能有自己的建议。写一个存储过程,但我擅长 MySQL 而不是 MSSQL。
任何更好的建议都会很棒。另外,如果有人知道微软是否正在努力将此功能添加到实体框架中。
【问题讨论】:
-
我非常有信心,如果不访问数据库或编写与实际返回这些行的查询分开的查询,您就无法获得查询中的行数。
-
感谢@JonathanWood 的想法!
-
当您在 EF 中使用 .Count() 时,它不会选择所有行,它只会执行
select count() from tablesql 语句 - 所以虽然您确实需要 2 个查询,但其中一个非常便宜。 -
@JK
select count()一点都不便宜!实际上它与实际获取数据的复杂性几乎相同,唯一的区别是它只计算行而不是获取行。但它仍然必须执行所有扫描等。 -
如果我有一个复杂的查询,它只计算结果,可能是 10,000+,另一个只会抓取其中 20 个结果。 Count() 会对整个过程征税吗?
标签: c# entity-framework pagination