Linq MongoDB.Driver 2.11.2的Collection.AsQueryable()。GroupBy()内部的where方法被忽略

时间:2020-10-14 15:08:34

标签: c# mongodb mongodb.driver

我正在用C#编写一些服务,我必须使用MongoDB.Driver 2.11.2。 对项目列表进行分组时出现一些问题。看起来像个错误。 这是我的代码:

 var totals = Collection.AsQueryable().GroupBy(s => s.StoreId, (key, group) => new Test
        {
            Key = key,

            LabOnHandTestCount =
                group.Count(groupItem => groupItem.IsLab.HasValue && groupItem.IsLab.Value),

            LabOnHandPrice =
                group.Where(groupItem => groupItem.IsLab.HasValue && groupItem.IsLabd.Value)
                    .Sum(z => z.TotalCost),


            LabOnHandPrice2 =
                group.Sum(g=> g.IsLa.HasValue && g.IsLab.Value ? g.TotalCost:0),

            LabOnHandPrice3 =
             group.Where(gg => gg.IsLab.Value == true).Sum(s=>s.TotalCost),

        }).ToList();

我从下一行得到了不同的结果。

  • 第一行:

    LabOnHandPrice = group.Where(groupItem => groupItem.IsLab.HasValue && groupItem.IsLabd.Value)
                 .Sum(z => z.TotalCost)
    
  • 第二行(正确的结果):

    LabOnHandPrice2 = group.Sum(g=> g.IsLa.HasValue && g.IsLab.Value ? g.TotalCost:0),
    

似乎“第一行”的“哪里”方法被忽略,并且对错误的值执行了计算。 而且,如果我更改条件,“第一行”的结果也不会更改。 我在MongoDB官方网站上找不到任何信息。

为什么“哪里”方法被忽略了,而我却得到了不同的结果?有什么解决办法吗? 提前Tnx

0 个答案:

没有答案