我们有一个类似下面的查询:
问题在于当添加
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也没有帮助,它不会影响上面的语句,只是添加了一个额外的列进行排序。
ORDER BY
?我认为它需要它来将查询结果分成用于创建包含类型的部分。EF可能希望数据库引擎通过索引更有效地进行排序,而不是使用CLR代码。我非常确定没有办法摆脱它。 - Gert Arnold