c# – LINQ优化问题

如果我有以下代码,编译器是否实例化每个结果还是足够明智,只计算表中有多少相应的记录?如果没有,它可能会迫使我对更大的查询使用不同的策略.

from c in context.RendezVous
where c.RepID == repID &&
    c.DateHeureRV != null &&
    c.DateHeureRV.Value.Date == date.Date
select c).Count();

谢谢!

这取决于上下文的类型.

如果这是实体框架或Linq to SQL查询,并且上下文是IQueryable< T>,则查询将变为服务器上的SQL查询,该查询仅将计数作为单个整数返回.

如果这是内存中集合(即:IEnumerable< T>),则按顺序迭代每个项目(Linq to Objects)并计数.

我怀疑前者是真的,因为你提到“table”并且你没有使用LINQ to Dataset扩展方法.在这种情况下,您将保持非常高效.

相关文章
相关标签/搜索