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

本文关键字:Include 添加 ORDER BY 实体 框架 | 更新日期: 2023-09-27 18:19:23

我们有一个类似于下面的查询:

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查询中添加排序也没有帮助,除了添加一个额外的列来排序之外,它不会影响上面的语句。

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

显然,这是EF在内部做的事情,以简化之后产生的对象的创建。不能删除order by指令