使用Include时阻止entity framework添加ORDER BY
我们有类似以下的查询:
from x in db.Table.Include(x => x.Parent) .Include(x => x.Parent.Relation) .Include(x => x.Relation) .Include(x => x.Children) where /* some query */ select x
问题是,当添加.Include(x => x.Children)
,Entity Framework添加到生成的SQL的ORDER BY
语句会导致查询花费很长时间来执行 – 如下所示:
ORDER BY [Project2].[Id1] ASC, [Project2].[Id2] ASC, [Project2].[Id] ASC, [Project2].[C4] ASC
将orderby添加到linq查询也没有帮助,除了添加额外的列以进行排序之外,它不会影响上述语句。
显然,这是EF在内部做的事情,以便以后简化结果对象的创建。 您无法order by
指令删除order by
。