c# - 当我在 Entity Framework 中调用 Count 方法时,它是处理所有列还是只处理一个列或什么?

标签 c# .net sql entity-framework optimization

我正在寻找优化。

当我在 Entity Framework 中调用 Count 方法时,它会处理所有列还是只处理一个或什么?

如果你也有任何官方网站谈论这个,我将不胜感激。

谢谢。

最佳答案

我刚才做了一些测试,发现 EF 在服务器上进行计数,它发送一个带有 SELECT COUNT 的查询,因此它不会加载所有记录。

关于列,如果您指的是 COUNT(*)COUNT(Id)COUNT(1) 之间的区别我刚才在某处读到,对于 SQL Server 来说没有区别,COUNT(*) 无论如何都被优化为 COUNT(1)

您可以在线阅读许多文章或在此处就 SO 提问...不是 100% 准确地回答您的问题,而是关于 EF 和 ORM 性能的类似主题...

How to COUNT rows within EntityFramework without loading contents?

http://ayende.com/blog/4387/what-happens-behind-the-scenes-nhibernate-linq-to-sql-entity-framework-scenario-analysis

How to optimize Entity Framework Queries

关于c# - 当我在 Entity Framework 中调用 Count 方法时,它是处理所有列还是只处理一个列或什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7590192/

相关文章:

c# - 如何捕捉成员变量的变化? (C#)

c# - 在运行时编译 *.cs 文件并访问成员

Php MySql 选择计数,准备好的语句返回始终为 1

.net - 用于 VS11 开发人员预览版的 MySQL 提供程序

c# - await Task.Delay 花费的时间比预期的要长

php - PHP 中的 UNION MySQL 结果将取决于第一个选择的列

python - 如何获取删除语句的sqlalchemy查询?

c# - 将现有代码优先模型和流畅的 API 配置从 Entity Framework 6 移植到 Entity Framework Core 2.0

c# - 将月份字符串转换为 int 格式

c# - 如何获取多维数组的宽和高?