Se abbiamo la necessità di ordinare una query Linq per più campi possiamo utilizzare gli operatori ThenBy e ThenByDescending. Considerando le classi del post precedente, se volessimo ordinare la query:
1 var query1 = esamiSostenuti
2 .OrderBy(es => es.ID_Studente)
3 .Select(es => new { es.ID_Studente, es.Voto });
non solo per il campo ID_Studente, ma anche per il campo Voto, possiamo scrivere:
1 //Ordinamento Ascendente
2 var query2 = esamiSostenuti
3 .OrderBy(es => es.ID_Studente)
4 .ThenBy(es => es.Voto)
5 .Select(es => new { es.ID_Studente, es.Voto });
Mentre per eseguire l'ordinamento in modo discendente scriviamo:
1 //Ordinamento Discendente
2 var query3 = esamiSostenuti
3 .OrderBy(es => es.ID_Studente)
4 .ThenByDescending(es => es.Voto)
5 .Select(es => new { es.ID_Studente, es.Voto });