此代码有区别吗?
var query = DbContext.Customers
.Where(<condition>)
.Include("Address");
和
var query = DbContext.Customers
.Include("Address")
.Where(<condition>);
它是自定义查询,我不知道,它是否相同?或者在第二种情况下where
在Include
之后执行?
感谢。
答案 0 :(得分:5)
对于选择之前的EF订单无关紧要。 LINQ查询转换为SQL查询并运行,SQL查询优化器不关心原始查询的顺序。
正如Patryk指出,当以下语句修改查询结构时,顺序可能与Include
具体相关,但是where子句不会这样做。
在其他LINQ查询中,LINQ-to-Objects,顺序可能非常重要,因为查询没有按照SQL的方式重新优化,只是从上到下处理,而一些LINQ方法需要以前的方法才能运行完成并且在继续进行第一个元素(例如OrderBy
)之前处理结果。