c# – How to sort inner list that is returned by entity framework? – Education Career Blog

How do I sort the inner collection of an object returned by the entity framework?

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

Is there a way to modify this LINQ query to return the X objects and also have the Y objects sorted? Or do I have to manually sort the Y list when it comes back?

EDIT:

This code must return a collection of X typed objects, anonymous typing doesn’t meet the current project’s requirements.

,

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)
                 };

Edited:
If you don’t want anonymous types then do this:

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)
                 };

Leave a Comment