【问题标题】:Entity Framework Querying a Many to Many to Many relationship实体框架查询多对多关系
【发布时间】:2012-12-28 16:36:42
【问题描述】:

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

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

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

【问题讨论】:

  • 上面的代码给了我一个权限列表,我只想要一个权限列表??
  • 我认为this 会解决你的问题。

标签: c# .net sql-server entity-framework many-to-many


【解决方案1】:

使用SelectMany 而不是SelectMany 将返回列表列表的查询展平

所以试试这个:

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

希望这会有所帮助!

【讨论】:

  • 是的,将每个列表扁平化为一个。非常感谢!
猜你喜欢
  • 1970-01-01
  • 2011-11-13
  • 2016-12-15
  • 1970-01-01
  • 2018-06-26
  • 2017-01-28
  • 2011-12-17
  • 1970-01-01
相关资源
最近更新 更多