Utilizzando Entity Framework 4, sto cercando di implementare l'ordinamento dinamico basato su una raccolta di nomi di membri. Fondamentalmente, l'utente può selezionare i campi da ordinare e l'ordine dell'ordinamento. Ho esaminato esempi di espressioni tree e non riesco a metterlo insieme. Ecco alcuni dettagli:Come si crea un albero di espressioni per l'ordinamento in fase di esecuzione?
Raccolta dei nomi delle colonne:
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");
La classe video viene definito come segue:
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;
Quello che vorrei fare è enumerare attraverso la raccolta sortColumns di costruire un albero di espressioni in fase di esecuzione. Inoltre, l'utente può specificare l'ordinamento crescente o decrescente e l'albero delle espressioni deve gestire entrambi.
ho provato la libreria dinamica LINQ per VS 2008, ma non sembra lavorare in VS 2010. (potrei fare qualcosa di sbagliato.)
La linea di fondo è che ho bisogno di un albero di espressione in modo dinamico ordina la raccolta di video in base all'input dell'utente. Qualsiasi aiuto sarebbe apprezzato.
È possibile utilizzare il ListSortDirection già definito (http://msdn.microsoft.com/en-us/library/system .componentmodel.listsortdirection.aspx) enum;) –
@BennorMcCarthy Fantastico! Grazie. Aggiornerò la risposta –
'@' Kevin - Esattamente quello di cui avevo bisogno, grazie! – James