尝试按具有一对多关系的值排序-LINQ查询

本文关键字:排序 -LINQ 查询 关系 一对多 | 更新日期: 2023-09-27 18:20:07

我一直在使用我的好朋友谷歌来寻找问题的解决方案,这是我在用完之前所能找到的

基本上我有3张桌子

开发与房地产有1对多的关系(一个开发可以有许多房地产)房地产与PropertyRent有1对多的关系(一个房地产可以有很多租金)

我遇到的问题是按租金价值排序,以下是我迄今为止的情况:

var developmentListSorted = (from d in ContextEntity.Properties
                             where developments.Contains(d.Development.DevelopmentId)
                             orderby d.PropertyRents.Select(x=>x.PropertyRentValue).OrderBy(x=>x.CompareTo(x))
                             select d.Development).Distinct().ToList();

现在没有OrderBy,我得到了一个很好的未排序列表。我真的需要能够按PropertyRentValue进行排序。

属性"development"是ID的数组。

如果我需要进一步澄清,请告诉我。

非常感谢。

尝试按具有一对多关系的值排序-LINQ查询

我假设ContextEntity.Developments允许您访问开发

var developmentListSorted =
               from d in ContextEntity.Developments
                  where developments.Contains(d.DevelopmentId)
                  orderby
                    d.Properties.Min(x=>x.PropertyRents.Min(y=>y.PropertyRentValue))
                  select d;

这假设您按最小租金值排序,您可以将MinMax的出现次数都更改为最大值,甚至可以使用Average