Ho faticato per farlo funzionare. Vorrei avere una dichiarazione EF prendere in una colonna per ordinare. La mia dichiarazione originale era questa:Entity Framework e ordine dinamico per dichiarazioni
var Query = from P in DbContext.People
where P.BusinessUnits.Any(BU =>BU.BusinessUnitID == businessUnitId)
orderby P.LastName
select P;
E ho cambiato questo al seguente:
var Query = from P in DbContext.People
where P.BusinessUnits.Any(BU =>BU.BusinessUnitID == businessUnitId)
orderby sortField
select P;
Dove sortField
è la colonna che vogliamo ordinamento, ed è una stringa cioè LastName
. Tuttavia, non sembra funzionare, non ha sorting e la stringa SQL emessa è completamente sbagliata. Qualcuno ha funzionato prima?
eccellente risposta, in questo caso particolare, questo sembra una soluzione migliore in modo da userò questo, grazie. – eyeballpaul
C'è un modo per aggiungere una clausola "asc" e "desc" qui? – eyeballpaul
Inoltre, perché dovrebbe funzionare con proprietà stringa e non interi? Una delle proprietà è un Int32 e quando provo a ordinare in quell'ordine viene visualizzato l'errore: "{" Impossibile eseguire il cast del tipo "System.Int32" per digitare "System.Object". LINQ to Entities supporta solo il cast di tipi primitivi di Entity Data Model. "}" – eyeballpaul