C# 多对多关系-将所有对象链接到另一个对象

C# 多对多关系-将所有对象链接到另一个对象,c#,telerik-open-access,C#,Telerik Open Access,我有两门课: public class User { public User() { this.Groups = new List<Group>(); } public long Id { get; set; } public string Name { get; set; } public IList<Group> Groups { get; set; } } 我想获取与组x关联的所有用户 如何编写l

我有两门课:

public class User
{
    public User()
    {
        this.Groups = new List<Group>();
    }

    public long Id { get; set; }
    public string Name { get; set; }

    public IList<Group> Groups { get; set; }
}
我想获取与组x关联的所有用户

如何编写linq请求


在删除指向此组的所有链接(用户/组)后,我最终要删除组x。或者,是否可以通过级联删除自动执行?我对这两种解决方案很感兴趣。

您可以使用下面的示例代码从
组中选择
用户

var allUserInGroup = Group.Where(group => group.Id == id).Select(group => group.Users).ToList();
对于删除部分:

if(!group.Any(g => g.Users))  {  // assume group is IQueryable/IEnumerable
   context.Group.Remove(group);
   context.SaveChanges();
}

选择给我一个trackedList[用户]。如何在循环中使用它?如何将其转换为IEnumerable(例如列表)?删除部分时出现错误“未知方法任何(?)”。@profou:我编辑了答案。您只需在第一部分中调用
ToList()
。第二部分,组必须是IEnumerable或IQueryable
var allUserInGroup = Group.Where(group => group.Id == id).Select(group => group.Users).ToList();
if(!group.Any(g => g.Users))  {  // assume group is IQueryable/IEnumerable
   context.Group.Remove(group);
   context.SaveChanges();
}