使用嵌套 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)