其他分享
首页 > 其他分享> > LINQ-to-Entities选择父对象时对子对象进行排序

LINQ-to-Entities选择父对象时对子对象进行排序

作者:互联网

想象一下,您有一些看起来像这样的Entity Framework实体(显然不是这些特定的类,而是具有所有Entity Framework管道的自动生成的类;这些仅用于说明):

public class Parent
{
    public int ID { get; set; }
    public List<Child> Children { get; set; }
}

public class Child
{
    public int ID { get; set; }
    public Parent Parent { get; set; }
    public int Number { get; set; }
}

我有一个看起来像这样的LINQ查询:

from parent in context.Parents.Include("Child")
select parent

但是,这将返回父级列表,其中子级按ID顺序排列.我希望孩子按照其父级中的Number属性排序.
如何才能做到这一点?

编辑:澄清:想法是将查询隐藏在仅返回IList< Parent>的方法调用之后(在图层外观中).这使得使用诸如匿名类查询和手动排序之类的解决方案变得很痛苦(与某些万能解决方案相比,您可以在查询或其他操作中做到这一点).

解决方法:

Alex James在this tip年讨论了此问题.

本质上,按照标准关系建模,关系被认为是无序的.因此,您无法对它们进行排序.但是您可以投影到可以排序的其他集合上.

标签:linq-to-entities,linq,c
来源: https://codeday.me/bug/20191210/2101341.html