2010-08-23 2 views
0

У меня есть следующая структура: EFNull ссылка исключение в сущности навигации

alt text

Я хочу, чтобы получить имя каждого пользователя, который присутствовал на встрече:

using(var ctx = new MyContext()) 
{ 
    var meeting = (from row in ctx.Meetings.Include("MeetingMessages").Include("MeetingUsers") 
      where row.mId == 1 
      select row).FirstOrDefault(); 

    foreach(var meetingUser in meeting.MeetingUsers) 
    { 
     MessageBox.Show(meetingUser.User.Name); //<== exception 
    } 
} 

Я получение NullReferenceException in meetingUser.User.Name линия т.к. meetingUser.User пример - null. Я не могу добавить .Include() в Meeting, потому что между ними нет никаких отношений. Есть ли способ загрузить его, не делая meetingUser.UserReference.Load() в foreach?

ответ

0

Одним из способов является проект:

using(var ctx = new MyContext()) 
{ 
    var meeting = (from row in ctx.Meetings 
        where row.mId == 1 
        select new 
        { 
         Meeting = row, 
         MeetingUsers = row.MeetingUsers, 
         Users = from u in row.MeetingUsers 
           select u.User 
        }).First(); 

    foreach(var meetingUser in meeting.MeetingUsers) 
    { 
     MessageBox.Show(meetingUser.User.Name); //<== exception 
    } 
} 
+0

Это было, конечно, сенсационным. Спасибо. – dstr

Смежные вопросы