看看下面我的模型,
- 每个用户有 n 个角色
- 每个角色有 n 个权限/每个权限有 n 个角色
我正在尝试获取用户权限,以便能够对其执行group by, 我怎样才能做到呢?
我打算编写一个如下所示的 LINQ 查询:
from uRole in context.Users.Single(u => u.Id == userId).Roles
join p in context.Permission.Where(p => p.Type == ModelEnums.PermissionType.Module)
我不知道如何编写查询,有人可以指导我吗?
最佳答案
要获取所有用户的权限,您可以使用 SelectMany
扩展方法:
var permissions=context.Users.Single(u => u.Id == userId).Roles.SelectMany(r=>r.Permissions).Distinct();
也可调用Distinct
删除重复项的扩展方法。
关于c# - 连接两个M :N relations in EntityFramework,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31610052/