2012-03-21 14 views
0

私は、次のクエリがあります:私はそのようにように、個々のための建物や部屋を引くしようとEntity FrameworkのNavigableプロパティがオブジェクトのインスタンスに設定されていませんか?

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 

しかし、まだ同じエラーを生成するような何かをやってみました。

答えて

1

rがrのidの代わりに何もないかどうかを確認します。

If IsNothing(queryStudent.FirstOrDefault.r) Then 
    room = "" 
Else  
    room = queryStudent.FirstOrDefault.r.id 
End If 
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 

いずれの場合も、アクセスしようとしているオブジェクトがnullでないことを確認しています。

関連する問題