2010-11-14 98 views
3

我有一个与ChatRoom,ChatMessage和参与者的EF模型。在某一点上,我需要获取包括所有参与者的特定ChatRoom,但只需计入其中的消息数。在下面我的代码,该Room - 属性丢失其参与者:实体框架:计数一个集合并包含另一个?

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

在做这样的工作原理:

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

为什么包括语句做一个Select到一个新的时,会丢失匿名类型?

回答

0

尽量在选择的参与者:

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); 
相关问题