在 Sum 中使用时,LINQ 如何返回 0 来代替 NULL?



使用嵌套 Sum 函数时,我的代码遇到了问题。未能考虑 NULL 值的最新版本如下:

TotalHours = Tickets.Sum(Function(x) If(x Is Nothing, 0, x.Ticket_Times.Sum(Function(y) If(y Is Nothing, 0, y.Hours))))

我也用CType尝试过这个,结果相同:

System.InvalidOperationException: 'The null value cannot be assigned to a member with type System.Decimal which is a non-nullable value type.'

总小时数是双精度,但是数据库中的小时数是十进制,所以也许这就是导致问题的原因?

在评论中的一些帮助下,我相信我有工作代码。

TotalHours = If(Tickets.Sum(Function(x) x.Ticket_Times.Sum(Function(y) If(CType(y.Hours, Decimal?) Is Nothing, 0, CType(y.Hours, Decimal?)))), 0)

相关内容

  • 没有找到相关文章

最新更新