Entity Framework 7 分组依据

Entity Framework 7 group by

我正在尝试 运行 以下代码,但是当我检查 SQL 分析器时,它看起来 运行 是 [=17] 上的完整 select =] 然后在它之后进行分组 returns 所有结果都来自数据库。任何帮助表示赞赏。

 var result = _dbContext.LogEvent.GroupBy(x => x.EventLevel)
                                 .Select(g => new 
                                              { 
                                                  eventType = g.Key, 
                                                  total = g.Sum(i => i.Occurrences) 
                                              }) 
                                 .ToList();

已更新:

下面链接的问题已关闭,并计划用于 EF 2.1.0。您现在应该可以使用预览包试用它了!


原回答:

It doesn't look like this is currently supported,但似乎有人看到了这个 post 并创建了链接问题。

这个概念是相当复杂的逻辑,EF7 还处于早期阶段。 .Net 的 GroupBy 不会直接转换为 SQL 的 GROUP BY,直到您仅使用聚合或 Select 中的密钥来跟进它。如果您有雄心壮志,可以提供拉取请求,或者 continue to use EF6.

它可能不会很快得到支持 - 不幸的是。会造成很多挫折,因为很多人不阅读发行说明,只是自然地假设它会像以前一样工作 (EF6 / Linq2SQL)。

我意识到对于涉及整个实体的更复杂的事情来说它可能很复杂,但遗憾的是它甚至不支持像你这样的简单查询:-(

https://blogs.msdn.microsoft.com/dotnet/2016/05/16/announcing-entity-framework-core-rc2/