2010-11-14 8 views
3

J'ai un modèle EF avec ChatRoom, ChatMessage et Participant. À un moment donné, j'ai besoin d'aller chercher un certain ChatRoom en incluant tous ses participants mais seulement avec un compte du nombre de messages dedans. Dans mon code ci-dessous, le Room -property manque ses participants:Entity Framework: Compter une collection et inclure une autre?

var res = context.Entities 
       .OfType<ChatRoom>() 
       .Include("Participants") 
       .Select(r => new 
           { 
           Room = r, 
           Messages = r.ChatMessages.Count() 
           }) 
       .FirstOrDefault(c => c.Room.Id == id); 

Quand vous faites comme ça cela fonctionne:

var res = context.Entities 
       .OfType<ChatRoom>() 
       .Include("Participants") 
       .FirstOrDefault(r => r.Id == id); 

Pourquoi la déclaration, y compris-perdu lorsque vous faites un Select à une nouvelle type anonyme?

Répondre

0

Essayez d'inclure les participants: sélectionnez

var res = context.Entities 
      .OfType<ChatRoom>() 
      .Include("Participants") // I think this could be removed. 
      .Select(r => new 
          { 
          Room = r, 
          Messages = r.ChatMessages.Count(), 
          Participants = r.Participants 
          }) 
      .FirstOrDefault(c => c.Room.Id == id); 
Questions connexes