2010-08-23 3 views
0

J'ai la structure EF suivante:exception de référence nulle dans l'entité de navigation

alt text

Je veux obtenir le nom de chaque utilisateur qui a assisté à une réunion:

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

Je suis obtenir NullReferenceException dans meetingUser.User.Name ligne car meetingUser.User instance est null. Je ne peux pas ajouter .Include() à Meeting car il n'y a pas de relations entre les deux. Y at-il un moyen de le charger sans faire meetingUser.UserReference.Load() dans foreach?

Répondre

0

Une façon est de projet:

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

Ce fut certainement ouvert les yeux. Je vous remercie. – dstr

Questions connexes