2011-06-10 17 views
0

给定一个的EntityFramework POCO对象模型,如:LINQ集团和成员视图模型为会员EDITTING

public class Group 
{ 
    public int GroupID { get; set; } 
    public string Category { get; set; } 
    public virtual ICollection<Member> Members { get; set; } 
} 

public class Member 
{ 
    public int MemberID { get; set; } 
    public string Name { get; set; } 
    public virtual ICollection<Group> Groups { get; set; } 
} 

凡有不少一对多关系是的DbContext定义如下:

Group  GroupMember Member 
------- ----------- ------- 
GroupID GroupID  MemberID 
Category MemberID  Name 

为了允许组员维护,我希望构建一个ViewModel,它可以为任何请求的组创建一个系统中所有“成员”对象的列表,以及一个指示'成员'是否已经是群组。 视图将显示“标记”字段的复选框以及列表中的成员名称。

用户将能够选中/取消选中该复选框以编辑组中的成员列表。

我一直在旋转我的车轮试图找出一个LINQ查询来选择这个列表,将不胜感激一些指针。

回答

1

你的意思是这样的:

var model = from m in db.Members 
      orderby m.Name 
      select new GroupMemberRow 
      { 
       MemberID = m.MemberID, 
       Name = m.Name, 
       IsMember = m.Groups.Any(g => g.GroupID == groupId) 
      }; 

+0

stuntz非常感谢。我的理解是缺少您提供的IsMember定义。 – 2011-06-13 14:39:08