我正在用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