Ich habe ein Raster mit Spalten. Wenn der Grid-Spaltenkopf ausgewählt ist, poste/ajax an den Server, wobei die Kopfzeile ausgewählt ist, um x Zeilen zurückzugeben.Generic Func benötigt Sortierung von Entity Framework-Sammlung
Im folgenden Code ist RefNo eine Ganzzahl, während PropertySectionNumber eine Zeichenfolge ist.
Wie kann man eine generische Funktion erstellen, die einen String übernimmt, aber einen Func zurückgibt, der in der linq-Anweisung verwendet werden soll?
if (sort.dir == SortDirection.Asc)
{
switch (sort.field)
{
case "RefNo":
qry = qry.OrderBy(x => x.RefNo);
break;
case "ProposalSectionNumber":
qry = qry.OrderBy(x => x.ProposalSectionNumber);
break;
}
}
else
{
switch (sort.field)
{
case "RefNo":
qry = qry.OrderByDescending(x => x.RefNo);
break;
case "ProposalSectionNumber":
qry = qry.OrderByDescending(x => x.ProposalSectionNumber);
break;
}
}
Ich möchte so etwas wie String sortOrder = "RefNo" var sortfunc = SortFunc (sortOrder)
if (sort.dir == SortDirection.Asc)
{
qry = qry.OrderBy(sortFunc)
}
else
{
qry = qry.OrderByDesc(sortFunc)
}
ich die Funktion SortFunc (die auf der Grundlage String zurückgibt zu schaffen haben gekämpft tun oder Ganzzahl)
Was ist der beste Weg, dies zu erreichen?
die System.Linq verwenden. Dynamisches nugget-Paket, Sie können nach dem Eigenschaftsnamen als Zeichenfolge sortieren. – Mant101