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