在 mvc linq 中从多对多关系中检索数据 asp.net



我在使用 linq 检索多对多关系中的数据时遇到问题。

我有3张桌子

  • Employee
  • role
  • RoleInemployee

第三个表有两列:empidroleid

一个员工可以分配给多个角色

存储在第三个表中,或者您可以说分配给多个员工的一个角色。

我只想使用 linq 检索具有特定角色 ID 的员工。

我在员工模型中使用导航属性,例如

public virtual ICollection<Role> role {get;set;} 

此导航属性为我提供了特定员工的角色,但我想检索分配了特定角色的员工数据。

任何身体都可以提供帮助吗?

Count 有一个重载,将谓词作为参数,所以你可以这样做

   var count =  db.Employees.Count(emp=> emp.role.Any(r=> r.Id == 12));

编辑

让员工担任特定角色

var employees = db.Employees.Where(emp => emp.role.Any(r => r.Id == 12));

如果我正确理解了这个问题,您希望使用 LINQ 将员工数设置为特定角色 ID。

如果您的实体框架 Employee 类包含角色列表,则可以对员工列表执行以下操作,其中 123 是您要查找的 RoleID:

employeeList.Where(x => x.Roles.Where(y => y.RoleID == 123)).Count();

编辑:删除了员工角色代码

相关内容

  • 没有找到相关文章

最新更新