实体框架Linq查询:.Where chain vs&&

时间:2011-02-17 13:11:30

标签: entity-framework linq ef-fluent-api

此问题适用于使用Linq和实体框架进行查询优化。

将linq查询的单.Where子句中的&&链接到.Where子句与实体framwork之间是否有任何区别?

例如:假设我有以下代码:

var result = context.SomeEntity.Where(exp1).Where(exp2);

var result = context.SomeEntity.Where(exp1 && exp2);

在评估产生相同结果的这些语句时,linq和实体框架是否以相同的方式评估它们?即,两者是否都有相同的执行计划,因此效率相同?

2 个答案:

答案 0 :(得分:21)

是的,两者都有相同的执行计划。我添加了一个sql跟踪,并且都创建了相同的SQL语句

答案 1 :(得分:2)

我总是使用&&,因为它使代码更容易阅读。通过使用多个,这将产生大量额外的噪音,并把重点放在逻辑上。