Korzystając z Entity Framework 4, próbuję zaimplementować dynamiczne sortowanie w oparciu o zbiór nazw członków. Zasadniczo użytkownik może wybrać pola do sortowania i kolejność sortowania. Przyjrzałem się przykładom drzewa ekspresji i nie mogę tego poskładać razem. Oto kilka szczegółów:Jak utworzyć drzewo wyrażeń do sortowania według czasu wykonywania?
Zbiór nazw kolumn:
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");
Klasa wideo jest zdefiniowane następująco:
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;
Co chciałbym zrobić to wyliczyć poprzez zbieranie sortColumns budowy drzewo wyrażeń w czasie wykonywania. Ponadto użytkownik może określić sortowanie rosnąco lub malejąco, a drzewo wyrażeń powinno również obsługiwać.
próbowałem biblioteki dynamicznej LINQ dla VS 2008, ale nie wydaje się, aby pracować w VS 2010. (I może być robić coś złego.)
Najważniejsze jest to, że potrzebujemy drzewa wyrażenie dynamicznie sortuj kolekcję wideo na podstawie danych wprowadzanych przez użytkownika. Każda pomoc będzie doceniona.
Można użyć już zdefiniowanego ListSortDirection (http://msdn.microsoft.com/en-us/library/system .componentmodel.listsortdirection.aspx) enum;) –
@BennorMcCarthy Fantastyczny! Dzięki. Zaktualizuję odpowiedź. –
'@' Kevin - Dokładnie to, czego potrzebowałem, dzięki! – James