ef group by columns命令问题?

时间:2017-05-16 13:19:28

标签: c# sql sql-server entity-framework group-by

好吧,想象一下,我有EF 6.1.3和数据库第一个模型(存储在edmx文件中),其中包含一个名为Product的实体。 该实体有4列,例如:Id(int),Name {string),Code(string),Rank(int)。列按我所描述的顺序存储,您可以在模型浏览器中看到。 然后我写这样的查询:

var list = mycontext.Products
   .Where(x => x.Id < 10)
   .GroupBy(x => new { x.Code, x.Name })
   .Select(x=> new { x.Key.Code, x.Key.Name, MaxRank = x.Max(z => z.Rank) })
   .ToList();

如您所见,我在group by子句中使用了另一个列顺序(Code列,然后是Name列)。

但是在SQL查询中我有这样的查询文本:

....
GROUP BY
        [Extent1].[Name]
      , [Extent1].[Code]
....

group by子句中的列始终按照它们在edmx文件中的顺序排序。

它只是一个示例,但这种情况总是会破坏我的查询计划,导致sql开始使用错误的索引等。

有人知道我该如何解决这个问题?

without sort with sort

0 个答案:

没有答案