Свойство Navigable Entity Framework не установлено для экземпляра объекта? - PullRequest
0 голосов
/ 21 марта 2012

У меня следующий запрос:

 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

Но это все равно вызывает ту же ошибку.

Ответы [ 2 ]

1 голос
/ 21 марта 2012

Я подозреваю, что queryStudent.FirstOrDefault имеет значение null. Если вы попытаетесь получить доступ к свойству нулевого объекта, вы получите это исключение. Попробуйте этот подход:

If IsNothing(queryStudent.FirstOrDefault) Then  
     room = ""
Else If IsNothing(queryStudent.First.r) Then
    room = ""
Else     
     room = queryStudent.FirstOrDefault.r.id
End If

В каждом случае вы проверяете, что объект, к которому вы собираетесь получить доступ, не равен нулю.

1 голос
/ 21 марта 2012

Проверьте, не является ли r ничем, а не идентификатором r.

 If IsNothing(queryStudent.FirstOrDefault.r) Then   
     room = "" 
 Else      
     room = queryStudent.FirstOrDefault.r.id 
 End If 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...