当前位置:  开发笔记 > 数据库 > 正文

算在LINQ中选择VS - 哪个更快?

如何解决《算在LINQ中选择VS-哪个更快?》经验,为你挑选了1个好方法。

IQueryable在我的应用程序中使用接口,并推迟在DB上执行SQL,直到像这样的方法.ToList()

我有时需要找到某些列表的计数 - 而不需要使用列表中的数据进行计数.根据我的SQL经验,我知道SQL COUNT()的工作量远远少于返回所有行的等效SELECT语句.

所以我的问题是:不会是在DB工作少,从返回计数IQueryableCount()不是呈现方法IQueryable到列表并调用列表的Count()方法是什么?

我怀疑它将会ToList()激活SELECT sql,然后在单独的查询中计算行数.我希望Count()IQueryable简单地为sql COUNT()查询呈现sql.但我不确定.你知道吗?



1> Jon Skeet..:

调用ToList()将返回List所有数据的正版,这意味着获取所有数据.不好.

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

但是,检查此问题的最简单方法是在数据上下文中启用日志记录(或者为您的特定提供程序提供等效内容)并查看实际发送的查询.

推荐阅读
Life一切安好
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有