Sql server 2008 r2 LINQ查询中没有orderby,但SQL中的orderby

Sql server 2008 r2 LINQ查询中没有orderby,但SQL中的orderby,sql-server-2008-r2,linq-to-entities,entity-framework-5,sql-execution-plan,Sql Server 2008 R2,Linq To Entities,Entity Framework 5,Sql Execution Plan,我有一个LinqToEntities查询,它不使用orderby子句,但在生成的SQL查询中,有一个orderby子句,它在查询执行计划时花费了77% 有人知道为什么要添加ORDER BY子句吗?如果可能,我如何删除它 以下是LinqToEntities查询: var classementsQuery = from classement in _dbContext.Classements .Include(c =>

我有一个LinqToEntities查询,它不使用orderby子句,但在生成的SQL查询中,有一个orderby子句,它在查询执行计划时花费了77%

有人知道为什么要添加ORDER BY子句吗?如果可能,我如何删除它

以下是LinqToEntities查询:

var classementsQuery =
    from classement in _dbContext.Classements
                                 .Include(c => c.Operations)
                                 .Include("Operations.Matrices")
                                 .Include("Operations.Qualifications")
                                 .Include("Operations.Qualifications.Matrices")
                                 .Include("Operations.Qualifications.QualificationEtapes")
                                 .Include("Operations.Qualifications.QualificationEtapes.Matrices")
    where classement.Operations.Any()
    select classement;

注:每个包含的实体关系都是n-n。

从LINQ生成的最终SQL查询是什么?在该查询orderby类元素中确实有一个orderby。ClassementYou's right,@HonorableChow,这是一个临时测试,在我的剪贴板中结束。。。我在OP中删除了它。即使LINQ中没有orderby,SQL中仍然有order by。@Carl order by是:order by[Project13].[ClassementId]ASC、[Project13].[C94]ASC、[Project13].[C3]ASC、[Project13].[C1]ASC、[C35]ASC、[C39]ASC、[Project13].[C65]ASC、[C69]ASC。整个SQL查询是一个600行的SQL查询。。。你真的想看吗?我能问你为什么吗?@DudePascalou,哈哈,如果它有600行长就不行了!我想知道EF这样做是否有明显的原因。我不是100%确定,但我认为EF在使用include函数时会添加一个orderby子句,以便在将结果映射回另一端的对象时对相关记录进行分组以提高效率,而且如果不将查询分解为不使用include,我认为它是可移动的。