已经看过C#的一些解决方案,但不知道如何解决VB.NET中的问题。
查询:
Dim Query = (From t In myEntities.Bookings
Where(t.Ref = Someid)
Select t.People).Sum()
t.Ref
字段为Int
,因此t.People
。
SomeId
值是相关表的主键。此问题是Bookings
表中的记录并不总是具有Ref值为Someid - 因此查询会引发以下错误。
我已经看到其他人已经解决了这个错误的问题,但从阅读这个和根据错误信息似乎应该有一个解决方案(在VB.NET中)来强制转换查询或一些查询中的字段为可空类型?
错误如下:
The cast to value type 'Int32' failed because the materialized value is null. Either the result type's generic parameter or the query must use a nullable type.
答案 0 :(得分:0)
你的Sum()处理的是int,你真正想要的是一个可以为空的int。
Dim Query = (From t In myEntities.Bookings Where(t.Ref = Someid) Select t.People).Sum(Function(x) CType(x, Integer?))