【问题标题】:How to sort inner list that is returned by entity framework?如何对实体框架返回的内部列表进行排序?
【发布时间】:2010-10-20 19:09:23
【问题描述】:

如何对实体框架返回的对象的内部集合进行排序?

public class X
{
   public string Field {get; set;}
   public EntityCollection<Y> Ys {get; set;}
}

public class Y
{
   public string Field {get; set;}
}

from x in entities.Xs
orderby x.Field
select x

有没有办法修改此 LINQ 查询以返回 X 对象并同时对 Y 对象进行排序?还是我必须在 Y 列表返回时手动对其进行排序?

编辑:

此代码必须返回 X 类型对象的集合,匿名类型不符合当前项目的要求。

【问题讨论】:

    标签: c# entity-framework sql-order-by


    【解决方案1】:
    var sortedList = from x in entities.Xs
                     orderby x.Field
                     select new {
                       Field = x.Field,
                       y = (select y in x.Ys
                            orderby y.Field
                            select y)
                     };
    

    已编辑: 如果您不想要匿名类型,请执行以下操作:

    var sortedList = from x in entities.Xs
                     orderby x.Field
                     select new X {
                       Field = x.Field,
                       y = (select y in x.Ys
                            orderby y.Field
                            select y)
                     };
    

    【讨论】:

    • 我想过这个,但后来我会处理匿名类型而不是 X 类型。这恰好存在于服务层中,因此我需要将类型保持为 X。
    • @Jerod:所以select new X 改为:stackoverflow.com/questions/2450536/…
    • @Jerod Danny 的评论击败了我的编辑......但无论如何,看看我编辑的答案
    • 我猜这无论如何都行不通...“无法将源类型'System.Linq.IQorderedEnumerable'转换为目标类型'System.Data.Objects.DataClasses.EntityCollection '。
    • @Jerod ....这是什么查询。一些上下文可能会帮助我帮助您解决问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-17
    • 1970-01-01
    • 1970-01-01
    • 2011-11-22
    相关资源
    最近更新 更多