我在应用程序中使用IQueryable<T>
接口,并延迟执行DB上的SQL直到像.ToList()
这样的方法调用。
有时我需要查找某些列表的计数,而不需要使用被计数的列表中的数据。我知道从我的SQL经验来看,对于DB而言,SQL COUNT()比返回所有行的等效SELECT语句要少得多。
那么我的问题是:从IQueryable<T>
的Count()
方法返回计数,在DB上是否工作量较小,而不是渲染IQueryable<T>
为列表并调用列表的Count()
方法?
我怀疑会,因为ToList()
将触发SELECT SQL,然后在单独的查询中计算行数。我希望IQueryable<T>
上的Count()
仅将sql呈现为sql COUNT()查询。但我不确定。你知道吗?