我正在尝试运行以下代码但是当我检查SQL分析器时,它看起来像在表上运行完整选择,然后在它返回数据库中的所有结果后进行分组。任何帮助表示赞赏。
var result = _dbContext.LogEvent.GroupBy(x => x.EventLevel)
.Select(g => new
{
eventType = g.Key,
total = g.Sum(i => i.Occurrences)
})
.ToList();
答案 0 :(得分:7)
以下链接的问题已经关闭,并且定于EF 2.1.0。您现在应该可以使用预览包进行试用!
It doesn't look like this is currently supported,但看起来有人看过这篇帖子并创建了链接问题。
这个概念是一个相当复杂的逻辑,而EF7则处于早期阶段。 .Net GroupBy
不会直接翻译到SQL的GROUP BY
,直到您只使用Select
中的聚合或密钥进行跟进。如果您有野心,可以提供拉取请求,或continue to use EF6.
答案 1 :(得分:0)
很可能不会很快得到支持 - 不幸的是。会引起很多挫折,因为很多人都没有阅读发行说明,并且自然会认为它会像以前一样工作(EF6 / Linq2SQL)。
我意识到涉及整个实体的更复杂的事情可能很复杂,但遗憾的是它甚至不支持像你这样的简单查询:-(
https://blogs.msdn.microsoft.com/dotnet/2016/05/16/announcing-entity-framework-core-rc2/