如何获得只有一些特定部门ID的用户Linq

时间:2010-11-15 04:47:01

标签: linq

我有两个实体

public class User
{
   public int UserId { get; set; }
   public string UserName { get; set; }
   public List<Department> Departments { get; set; }
}

public class Department
{
   public int DepartmentId { get; set; }
   public string DepartmentName { get; set; }
   public List<User> Users { get; set; }
}

如您所见,两个对象之间的关系是M:N。 我想获得只有特定部门ID的用户,在这种情况下,如何让用户使用Linq?

提前致谢

1 个答案:

答案 0 :(得分:3)

int requiredId = ...   
var usersInReqdDept = Users.Where(u => u.Departments
                                        .Any(d => d.DepartmentId == requiredId));

如果Departments列表可以是null,则需要在Where子句中进行空值检查。

如果您想要搜索Departments列表,

int requiredId = ...   
var usersInReqdDept = Departments.Single(d => d.DepartmentId == requiredId)
                                 .Users;

当然,如果这样的部门不存在,这将引发异常。