我有一个数据库,其中用户可以属于多个角色,角色可以有多个权限。这两种关系都是多对多的。我想查询并生成用户拥有的权限列表。我试图通过查询角色表以查看用户是哪些角色的成员来完成此操作,然后我想查询并查看每个角色包含哪些不同的权限。但是我似乎无法让 LINQ 正确。
var permissions = RoleRepository.Get()
.Where(x => x.Users.Contains(user))
.Select(x => x.Permissions);
上面的代码给了我一个权限列表,我只想要一个权限列表。无论如何(在 LINQ 中)是否可以合并所有这些列表?还是有更好的方法来实现这一点?
最佳答案
使用 SelectMany
相反,SelectMany
扁平化返回列表列表的查询
所以试试这个:
var permissions = RoleRepository.Get().Where(x => x.Users.Contains(user))
.SelectMany(x => x.Permissions);
希望这会有所帮助!!
关于c# - Entity Framework 查询多对多关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14072676/