订单执行链linq查询

Dan*_*kin 8 c# linq linq-to-entities

这段代码有区别吗?

var query = DbContext.Customers
                .Where(<condition>)
                .Include("Address");
Run Code Online (Sandbox Code Playgroud)

var query = DbContext.Customers
                .Include("Address")
                .Where(<condition>);
Run Code Online (Sandbox Code Playgroud)

它是自定义的查询,我不知道,它是等同的吗?或者在第二种情况下where执行后Include

谢谢.

Sam*_*eff 5

对于EF顺序,选择之前没有关系。LINQ查询将转换为SQL查询并运行,并且SQL查询优化器不在乎原始查询的顺序。

正如Patryk所指出的,Include当以下语句修改查询的结构时,顺序尤其重要,但是where子句不执行此操作。

在其他LINQ查询(从LINQ到Objects)中,顺序可能会很重要,因为该查询没有按照SQL的方式进行重新优化,并且只是从上到下进行简单处理,并且某些LINQ方法需要以前的方法才能运行到完成并处理结果。在继续学习第一个元素之前(OrderBy例如)。