防止实体框架在使用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查询中添加排序也没有帮助,除了添加一个额外的列来排序之外,它不会影响上面的语句。
显然,这是EF在内部做的事情,以简化之后产生的对象的创建。不能删除order by
指令