我有两个实体
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?
提前致谢
答案 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;
当然,如果这样的部门不存在,这将引发异常。