C# EF6 Linq选择,带总和和位置

C# EF6 Linq选择,带总和和位置,c#,linq,entity-framework-6,C#,Linq,Entity Framework 6,我有以下声明,这是一个更大的选择的一部分: something.Orders.Sum(o => o.InvoiceItems.Where(i => i.TypeID == Types.SomeType) .Sum(i => i.Amount * i.Quantity)) 如果我删除Where扩展名,它可以正常工作,并返回所有订单的正确金额总和。但它返回null的位置。我在这里哪里错了?谢谢 它是否返回null?或者它是否返回一个空的可枚举项?您

我有以下声明,这是一个更大的选择的一部分:

something.Orders.Sum(o => o.InvoiceItems.Where(i => i.TypeID == Types.SomeType)
                .Sum(i => i.Amount * i.Quantity))

如果我删除Where扩展名,它可以正常工作,并返回所有订单的正确金额总和。但它返回null的位置。我在这里哪里错了?谢谢

它是否返回null?或者它是否返回一个空的可枚举项?您是否100%肯定where谓词应该返回数据(该谓词为true的地方有InvoiceItems)。例如,“something.Orders.SelectMany(o=>o.InvoiceItems.Where(i=>i.TypeID==Types.SomeType))”是否返回任何InvoiceItems?
Sum
如果值为空,则可以返回
null
。它们可以为null吗?它返回null,我检查过了。生成的SQL应该包含一些线索