2011-02-17 125 views
23

此问题涉及使用Linq和实体框架进行查询优化。实体框架Linq查询:.Where链vs &&

是否有链接.Where条款,并与实体framwork LINQ查询单.Where条款使用&&之间有什么区别?

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

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

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

在评估这些声明,这产生相同的结果,并在LINQ和实体框架,评估它们一样的方法?即两者将具有相同的执行计划,并因此具有相同的效率?

回答

21

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

2

我总是与&&去,因为它使代码更易于阅读。通过使用多个位置这会产生很多额外的噪音,并将注意力集中在逻辑上。

+3

它更容易阅读,如果&&陈述短而少,但如果你链接在一起的多个较长的语句,在链接。哪里更有意义和更具有可读性。 – pkr298 2013-06-25 14:41:30