gpt4 book ai didi

c# - LINQ .SUM() 和可为空的数据库值

转载 作者:可可西里 更新时间:2023-11-01 08:35:20 24 4
gpt4 key购买 nike

我知道为什么会这样,但有人能指出正确的语法方向吗?

目前我有:

var expense = from e in db.I_ITEM
where e.ExpenseId == expenseId
select e;

return expense.Sum(x => x.Mileage ?? 0);

我的问题是 x.Mileage 的类型是“double?”并且在数据库中有空值。

我得到的错误是:

Exception Details: System.InvalidOperationException: The cast to value type 'Double' failed because the materialized value is null. Either the result type's generic parameter or the query must use a nullable type.

正确的语法是什么?

最佳答案

令我惊讶的是它失败了,但是可能的另一种方法是简单地对可为 null 的值求和,然后然后使用 null 合并运算符:

return expense.Sum(x => x.Mileage) ?? 0d;

当然,在 LINQ to Objects 中,如果序列中没有非空值,这会做正确的事情,忽略空值并为您提供空结果(在空合并运算符之前)。

关于c# - LINQ .SUM() 和可为空的数据库值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5154728/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com