这段代码有什么不同吗?
var query = DbContext.Customers
.Where(<condition>)
.Include("Address");
And
var query = DbContext.Customers
.Include("Address")
.Where(<condition>);
这是延迟查询,我不知道它是否等价?或者在第二种情况下where
之后执行Include
?
Thanks.
对于 EF 顺序,之前的选择并不重要。 LINQ 查询转换为 SQL 查询并运行,SQL 查询优化器不关心原始查询的顺序。
正如 Patryk 指出的那样,顺序尤其重要Include
当以下语句修改查询的结构,但 where 子句不执行此操作时。
在其他 LINQ 查询(LINQ 到对象)中,顺序可能非常重要,因为查询没有像 SQL 那样重新优化,而是简单地从上到下处理,并且某些 LINQ 方法需要以前的方法才能运行完成并处理结果在继续处理第一个元素之前(OrderBy
例如)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)