我有以下查询:
Dim queryStudent = (From p In dbContext.Residents _
Where p.people_code_id = people_id _
Where p.year = year _
Where p.semester = semester _
Join b In dbContext.Buildings On p.building Equals b.id _
Join r In dbContext.Rooms On p.room Equals r.id
Select p, b, r)
然后我试图像这样拉动建筑物和房间:
room = queryStudent.FirstOrDefault.r.id
building = queryStudent.FirstOrDefault.b.id
但我收到Object reference not set to an instance of an object
错误。
我尝试过像
这样的事情 If IsNothing(queryStudent.FirstOrDefault.r.id) Then
room = ""
Else
room = queryStudent.FirstOrDefault.r.id
End If
但是仍然会产生相同的错误。
答案 0 :(得分:1)
检查r是否为空而不是r的<。
If IsNothing(queryStudent.FirstOrDefault.r) Then
room = ""
Else
room = queryStudent.FirstOrDefault.r.id
End If
答案 1 :(得分:1)
我怀疑queryStudent.FirstOrDefault为null。如果您尝试访问null对象的属性,则会获得该异常。试试这种方法:
If IsNothing(queryStudent.FirstOrDefault) Then
room = ""
Else If IsNothing(queryStudent.First.r) Then
room = ""
Else
room = queryStudent.FirstOrDefault.r.id
End If
在每种情况下,您都在检查您要访问的对象是否为空。