微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

sql – 计数在LINQ中选择 – 哪个更快?

我正在使用IQueryable< T>在我的应用程序中的接口,并推迟在DB上执行sql,直到.ToList()

我需要有时找到某些列表的计数,而不需要使用列表中的数据.我从sql的经验中知道,sql COUNT()远不如返回所有行的等效SELECT语句为DB工作.

所以我的问题是:DB的返回数量从IQueryable< T>的Count()方法而不是渲染IQueryable< T>列表并调用列表的Count()方法

我怀疑ToList()将触发SELECT sql,然后在单独的查询中计算行数.我希望Count()在IQueryable< T>只是简单地渲染sqlsql COUNT()查询.但不能肯定.你知道吗?

解决方法

调用ToList()将返回一个正确的List< T>与所有的数据,这意味着获取所有的数据.不好.

调用Count()应该确实使sql数据库端执行计数.好多了.

然而,检查这一点的最简单的方法是启用在数据上下文中记录(或者与您的特定提供程序相同的内容),并查看实际发送的查询.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐