posso costruisco Linq Query dinamicamente con orderby dichiarazione come di seguito:Come aggiungere dinamicamente in ordine decrescente?
var Query = from q in Db.TblUsers select q;
switch (Order)
{
case "Name": Query = from q in Query orderby q.Name select q; break;
case "DOB": Query = from q in Query orderby q.DOB select q; break;
// ... and more cases
}
var Result = Query.ToList();
Tuttavia, se v'è la necessità da ordinare decrescente (dipende dalla selezione dell'utente nell'interfaccia utente), dovrò costruire un altro switch duplica tutti i casi solo per aggiungere la parola chiave "discendente" dopo il orderby.
esempio:
if (ascending)
{
switch (Order)
{
case "Name": Query = from q in Query orderby q.Name select q; break;
// ....
}
}
else
{
switch (Order)
{
case "Name": Query = from q in Query orderby q.Name descending select q; break;
// ....
}
}
C'è un modo per me di aggiungere solo la parola chiave discendente dinamicamente alla query?
http://stackoverflow.com/questions/41244/dynamic-linq-orderby-on-ienumerablet –
Forse si può basta usare 'if (! ascending) {Query = Query.Reverse(); } '? Oppure puoi aspettare di avere il tuo 'Elenco <>' che può essere invertito sul posto: 'Result.Reverse();' –