He estado luchando para que esto funcione. Deseo hacer una declaración de EF en una columna para ordenar por. Mi declaración original era la siguiente:Entity Framework y orden dinámica por declaraciones
var Query = from P in DbContext.People
where P.BusinessUnits.Any(BU =>BU.BusinessUnitID == businessUnitId)
orderby P.LastName
select P;
Y cambió esto a lo siguiente:
var Query = from P in DbContext.People
where P.BusinessUnits.Any(BU =>BU.BusinessUnitID == businessUnitId)
orderby sortField
select P;
Dónde sortField
es la columna que desea ordenar en, y es una cadena decir LastName
. Sin embargo, no parece funcionar, no ordena, y la cadena de SQL de salida está completamente equivocada. ¿Alguien consiguió esto trabajando antes?
excelente respuesta, en este caso particular, esto parece una mejor solución así que voy a usar esto, gracias. – eyeballpaul
¿Hay alguna manera de agregar una cláusula "asc" y "desc" aquí? – eyeballpaul
Además, ¿por qué funciona esto con propiedades de cadena y no enteros? Una de las propiedades es un Int32, y cuando intento ordenar en ese orden, aparece el error: "{" No se puede convertir el tipo 'System.Int32' para escribir 'System.Object'. LINQ to Entities solo admite el moldeado de tipos primitivos de Entity Data Model. "}" – eyeballpaul