Exclude null values while summation by specific column in a left joined table using LINQ
关于这个问题,我已经读了一些答案,但我认为它们不能解决我的问题。如果有人能给我指一个相关的,我会很高兴的。考虑下表:
预订可以收取不同的费用,每个预订可以收取多个费用,也可以不收取任何费用。每项收费都有自己的费率(美元)。因此,例如,预订的车辆可以收取200美元的迟到费用,而另一项不显示的费用则是450美元。这些费率可能因每次预订而有所不同,并非所有预订都有收费。
现在我要显示预订的总费用(如果有)。为此,我有以下LINQ查询:
1 2 3 4 5 6 | Dim q = (From b In _db.Bookings Select New With { .Bid = b.ID, <some other columns from booking table> .TotalCharges = b.BookingCharges.Sum(Function(o) o.Rate) }).ToList() |
查询返回错误:
"强制转换为值类型"System.Int32"失败,因为物化值为空。结果类型的泛型参数或查询必须使用可为空的类型。"
因为存在没有任何费用的预订(空),因此不能求和。我试过使用
(P)Try using the(……)operator:(p)字母名称(P)如果没有工作,也许有一些事情是这样的:(p)字母名称
(P)我找到了解决办法Applied if on whole new column not just on the specific column in the joining table(EDOCX1,English 0 column)because the null is not originated from the EDOCX1 individual 0 column,it is originating from an empty EDOCX1 indicative 2 commercial record against a EDOCX1EFE(Coaelescence).(p)(P)字母名称(p)(P)Thanks to Namrehs and this so answer.(p)