Al usar Entity Framework 4, intento implementar la ordenación dinámica en función de una colección de nombres de miembros. Básicamente, el usuario puede seleccionar los campos para ordenar y el orden de la clasificación. He visto ejemplos de árbol de expresiones y no puedo unir esto. He aquí algunos detalles:¿Cómo creo un árbol de expresiones para la ordenación en tiempo de ejecución?
colección de nombres de columna:
public List<string> sortColumns;
sortColumns = new List<string>();
/// Example subset of video fields. The collection will vary.
sortColumns.Add("Width");
sortColumns.Add("Height");
sortColumns.Add("Duration");
sortColumns.Add("Title");
está definida la clase de vídeo de la siguiente manera:
public class Video
{
public string Title { get; set; }
public int Width { get; set; }
public int Height { get; set; }
public float Duration { get; set; }
public string Filename { get; set; }
public DateTime DateCreated { get; set; }
.
.
.
}
public List<Video> Videos;
Lo que me gustaría hacer es enumerar a través de la colección sortColumns para construir un árbol de expresiones en tiempo de ejecución. Además, el usuario podría especificar una ordenación ascendente o descendente y el árbol de expresiones también debería manejarlo.
Probé la biblioteca dinámica LINQ para VS 2008, pero no parece funcionar en VS 2010. (que podría estar haciendo algo mal.)
La conclusión es que necesito un árbol de expresión de forma dinámica ordenar la colección de videos en función de la entrada del usuario. Cualquier ayuda sería apreciada.
Se podría utilizar el ListSortDirection ya definido (http://msdn.microsoft.com/en-us/library/system .componentmodel.listsortdirection.aspx) enum;) –
@BennorMcCarthy Awesome! Gracias. Actualizaré la respuesta. –
'@' Kevin - ¡Exactamente lo que necesitaba, gracias! – James