我有一个简单的实体查询:
Dim rhcexists = From p In dbContracts.Signatures _
Where p.StudentID = people_code_id _
And p.ContractType = "rhc" _
Order By p.ID Descending _
Select p
然后我检查一个结果值是否比六个月前更近,使用if..then就像这样:
If rhcexists.First.SignatureDate > Date.Today.AddMonths(-6) Then
End If
但是,如果没有返回结果,则会返回错误。如果根本没有任何价值,我有没有办法告诉它如果日期超过六个月呢?例如,我可以伪做类似的事情:
If Exists(rhcexists.First.SignatureDate, Date.Today.AddMonths(-8)) > Date.Today.AddMonths(-6) Then
结束如果
答案 0 :(得分:2)
您正在使用First
扩展方法,如果没有结果,这将会爆炸。你可以这样做:
Dim first = rhcexists.FirstOrDefault()
If first IsNot Nothing AndAlso first.SignatureDate > Date.Today.AddMonths(-6) Then
' Do stuff here
End If
如果没有结果, FirstOrDefault
将返回Nothing
,而不是抛出异常。
答案 1 :(得分:1)
使用FirstOrDefault而不是First。然后你可以设置默认返回