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

3hvapo4f  于 2023-05-26  发布在  其他
关注(0)|答案(1)|浏览(140)

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

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

在linq查询中添加orderby也没有帮助,除了添加一个额外的列作为排序依据之外,它不会影响上面的语句。

jgovgodb

jgovgodb1#

显然,这是EF在内部做的事情,以便于之后创建结果对象。您无法删除order by指令。

相关问题