2010-08-23 80 views
0

我有以下EF结构:空引用异常

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 
    } 
} 

我由于meetingUser.User实例为空,因此在meetingUser.User.Name行中获得NullReferenceException。我无法添加任何.Include()Meeting,因为它们之间没有关系。有没有办法加载它,而不是在foreach中执行meetingUser.UserReference.Load()

回答

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 2010-08-24 08:20:09