EF Core 2 GroupBy Count谓词被忽略 [英] EF Core 2 GroupBy Count predicate ignored
本文介绍了EF Core 2 GroupBy Count谓词被忽略的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我目前有以下代码:
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预览2上尝试过,这可能是一个错误吗?
When I call "Count()" it queries all subitem count ignoring my predicate "y.IsSpecial". I tried that on EF Core 2.0.X and EF Core 2.1 preview 2, is that possibly a bug?
推荐答案
此处与EF Core 3.0存在相同问题.似乎是EF中的错误-您可以使用
Same problem here with EF Core 3.0. Seems to be bug in EF - you can workaround by using
SpecialItemCount = x.Sum(y => y.IsSpecial ? 0 : 1)
代替
SpecialItemCount = x.Count(y => y.IsSpecial == false)
这篇关于EF Core 2 GroupBy Count谓词被忽略的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文