EF Core 2 GroupBy Count谓词被忽略 [英] EF Core 2 GroupBy Count predicate ignored

查看:61
本文介绍了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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆