在System.Linq.Dynamic或可能不同的解决方案中选择多个对象后,如何将对象合并到一起?
我试图在集合中的集合中选择几个字段。角色->用户(名称和ID)我可以使用selectmany获得扁平化数据,但现在我需要将其合并回集合对象,以便正确格式化json。如果可能的话,我想在动态linq中这样做,否则我可能不得不手动将对象合并到一起。任何帮助都会很好 用户->用户角色->角色(与用户角色作为联接表的多对多关系) 结果如下所示:在System.Linq.Dynamic或可能不同的解决方案中选择多个对象后,如何将对象合并到一起?,linq,linq-to-entities,dynamic-linq,Linq,Linq To Entities,Dynamic Linq,我试图在集合中的集合中选择几个字段。角色->用户(名称和ID)我可以使用selectmany获得扁平化数据,但现在我需要将其合并回集合对象,以便正确格式化json。如果可能的话,我想在动态linq中这样做,否则我可能不得不手动将对象合并到一起。任何帮助都会很好 用户->用户角色->角色(与用户角色作为联接表的多对多关系) 结果如下所示: Role A-> User A Role A-> User B ..notice the repeat of "Role A" Rol
Role A-> User A
Role A-> User B ..notice the repeat of "Role A"
Role A-> User C
应该是
Role A -> User A
+ User B
+ User C
我是一个JSON noob,但假设您已经准备好了一个项目集合
Role A-> User A
Role A-> User B
Role A-> User C
Role B-> User D
Role B-> User E
Role B-> User F
Role C-> User G
Role C-> User H
Role C-> User I
让我们说出它的名字
UserRoleCollection
只用
var res = UserRoleCollection.GroupBy(item => item.Role);
您将得到如下所示的i分组
Role A -> User A
User B
User C
Role A -> User D
User E
User F
... and so on
在选择Many之前使用GroupBy可获得您想要的结果 比如:
User_Roles.GroupBy(r => r.Roles.Role)
.Select(g => new { Role = g.Key, Users = g.SelectMany(u => u.Users.Name) });
User_Roles.GroupBy(r => r.Roles.Role)
.Select(g => new { Role = g.Key, Users = g.SelectMany(u => u.Users.Name) });