繁体   English   中英

EF Core 2 GroupBy Count 谓词被忽略

[英]EF Core 2 GroupBy Count predicate ignored

我目前有以下代码:

var result = query<Items>()
            .Where(x => x.Id == someId)
            .SelectMany(x => x.SubItems)
            .GroupBy(x => x.SubItemId)
            .Select(x => new ItemModel
            {   
                SubItemId = x.Key,
                SpecialItemCount = x.Where(y => y.IsSpecial == false).Count(),
            })
            .ToList()...

当我调用“Count()”时,它会查询所有子项计数而忽略我的谓词“y.IsSpecial”。 我在 EF Core 2.0.X 和 EF Core 2.1 preview 2 上尝试过,这可能是一个错误吗?

EF Core 3.0 也有同样的问题。 似乎是 EF 中的错误 - 您可以通过使用解决方法

SpecialItemCount = x.Sum(y => y.IsSpecial ? 0 : 1)

代替

SpecialItemCount = x.Count(y => y.IsSpecial == false)

您需要升级到支持 GroupBy 的 EF Core 2.1: https : //docs.microsoft.com/en-us/ef/core/what-is-new/ef-core-2.1

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM