当前位置:  开发笔记 > 编程语言 > 正文

通过LINQ中的子属性对父对象进行排序

如何解决《通过LINQ中的子属性对父对象进行排序》经验,为你挑选了1个好方法。

如何在LINQ中按子对象排序?

类A,B和C. A有B的集合,B有C的集合.我想通过C的Ordinal(int)属性来命令对象A.

var query = from a in db.A
        orderby a.Bs.OrderBy(x=> x.C.Ordinal)   <--- ??
        select a;

我似乎无法弄清楚orderby声明.

编辑:

对不起,我的原始陈述不正确:

A有B和B的集合,持有C对象.C不是一个集合.

每个A应按C的序数属性订购.

另一个编辑/解决方案:

我最终在显示器上为A中的每个B集合在客户端上做了一个.OrderBy(b => bCOrdinal).无论如何,事情变得更好,因为我可以让客户端按照他们需要的任何顺序排序,而不是将其嵌入我的存储库中.



1> Jon Skeet..:

你需要找出其中你Ç感兴趣的内容.

从现实的角度考虑这个问题 - 如果你试图按照孩子的年龄订购父母,你考虑哪个孩子的年龄?如果你有一个父母和1岁和5岁的孩子,以及一个有2岁和4岁孩子的父母,这应该是第一位吗?


@Dan:如果你不关心第一个孩子,这很容易:`OrderBy(p => p.Children.Min(c => c.Age))`.在LINQ中,由第一个孩子订购,然后第二个孩子等更难以表达.
推荐阅读
爱唱歌的郭少文_
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有