Как LINQ может возвращать 0 вместо NULL при использовании в Sum? - PullRequest
0 голосов
/ 19 сентября 2018

У меня проблема с кодом при использовании вложенных функций 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 - Double,однако количество часов в базе данных является десятичным, так что, может быть, именно в этом причина проблемы?

1 Ответ

0 голосов
/ 24 сентября 2018

С некоторой помощью в комментариях я считаю, что у меня есть рабочий код.

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)
...