2010-10-20 18 views
5

¿Cómo puedo ordenar la colección interna de un objeto devuelto por el marco de entidad?¿Cómo ordenar la lista interna que devuelve 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 

¿Hay una manera de modificar esta consulta LINQ para devolver los objetos X y también tienen los objetos Y ordenados? ¿O tengo que ordenar manualmente la lista Y cuando vuelve?

EDIT:

Este código debe devolver una colección de objetos X mecanografiado, mecanografía anónima no cumple con los requisitos del proyecto actual.

Respuesta

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

Editado: Si no desea que los tipos anónimos y luego hacer esto:

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

pensé en esto, pero entonces estaría repartiendo alrededor de los tipos anónimos en lugar de tipos X. Esto pasa a vivir en una capa de servicio, así que necesito que el tipo permanezca como X. –

+0

@Jerod: Entonces 'seleccione una nueva X' en su lugar: http://stackoverflow.com/questions/2450536/simple-way-to-return -anonymous-types-to-make-mvc-using-linq-possible/2717690 # 2717690 –

+0

@Jerod El comentario de Danny superó mi edición ... pero de todos modos, mira mi respuesta editada –