6

我有一个数据库,其中用户可以属于多个角色,角色可以有多个权限。两种关系都是多对多的。我想查询并生成用户拥有的权限列表。我试图通过查询角色表来查看用户是哪些角色的成员,然后我想查询并查看每个角色包含哪些不同的权限来完成此操作。但是我似乎无法正确获取 LINQ。

var permissions = RoleRepository.Get()
    .Where(x => x.Users.Contains(user))
    .Select(x => x.Permissions);

上面的代码给了我一个权限列表,我只想要一个权限列表。无论如何(在 LINQ 中)可以合并所有这些列表吗?还是有更好的方法来实现这一点?

4

1 回答 1

6

使用SelectMany相反,SelectMany展平返回列表列表的查询

所以试试这个:

var permissions = RoleRepository.Get().Where(x => x.Users.Contains(user))
                                .SelectMany(x => x.Permissions);

希望这会有所帮助!

于 2012-12-28T16:53:43.143 回答