可空对象必须有一个值错误,将linq查询结果分配给变量

时间:2011-03-24 16:05:11

标签: linq linq-to-sql

我创建了一个类类型的变量(CustomerInfo)来存储linq查询结果,当我查看或使用colResults变量时,得到错误消息'可空对象必须有值'(SurveyDate是一个可以为空的字段在sql表中):

        Dim var = SurveyDBcontext.QT_Survey_GetSurveySchedule(1, 1, 1).ToList()
        Dim colResults = From query In var _
                         ...      _                       
                         Select New CustomerInfo With { _
                            .Address = comp.Address, _
                            .SurveyDate= query.SurveyDate}

如果我将上述内容更改为:

        Dim colResults = From query In var _
                         ...      _                       
                         Select New With { _
                            .Address = comp.Address, _
                            .SurveyDate= query.SurveyDate}

如果工作正常。有什么想法吗?

感谢。

1 个答案:

答案 0 :(得分:0)

您的“地址”或“ServeyDate”字段返回空值,而您的CustomerInfo类不允许空值。

第二个例子是生成一个允许空值的匿名类型。你能检查生成的实际类型吗?在第二个例子中猜测SurveyDate是一个可以为空的DateTime。