首页 > 解决方案 > 从嵌套集合中获取最大值的 LINQ 查询

问题描述

我有 3 个实体 - 用户、用户组和组。User 和 UserGroup 是多对多的关系,Group 和 UserGroup 是一对多的关系。所以在 EF 方面,User 对象有一个 UserGroup 集合,而 UserGroup 有一个 Group 属性。组实体有一个名为 Level 的属性,它是一个给组排序的数字

我想检索所有用户以及具有最高级别的组。我怎么做?

标签: entity-frameworklinqmax

解决方案


使用元组,您可以执行以下操作:

 Users.Select(u => (u, u.UserGroups.Select(ug => (ug.Group, ug.Group.Level))
    .OrderByDescending(t => t.Item2).FirstOrDefault()?.Item1)))

假设我已经理解了您的描述(发布代码会更好)。


推荐阅读