使用Include时阻止实体框架添加ORDER BY

时间:2014-08-26 11:29:01

标签: c# sql linq entity-framework entity-framework-6

我们的查询类似于以下内容:

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)时,实体框架添加到生成的SQL的ORDER BY语句会导致查询花费很长时间来执行 - 如下所示:

ORDER BY [Project2].[Id1] ASC, [Project2].[Id2] ASC, [Project2].[Id] ASC, [Project2].[C4] ASC

向linq查询添加orderby也没有帮助,除了添加额外的列以进行排序之外,它不会影响上述语句。

1 个答案:

答案 0 :(得分:5)

显然,EF在内部做了一些事情,以便以后轻松创建结果对象。您无法删除order by指令。