2012-03-13 12 views
22

Ok por lo que en nuestro proyecto que estoy usando la biblioteca System.Linq.Dynamic pero me acabo de dar cuenta que yo no puedo hacer el folowing:System.Linq.Dynamic no es compatible con OrderByDescending ("someColumn")?

myDataSource.OrderByDescending ("someColumnName")

Porque me sale el siguiente error :

resolución de sobrecarga fracasó porque no OrderByDescending accesible puede ser llamada con estos argumentos ...

parece que la Biblioteca sólo admiten OrdenarPor ("someColumnName"). ¿Hay alguna razón para esto y cómo evitaría este problema si quisiera reordenar los registros en orden descendente? ¿Tengo que utilizar Reverse() por ejemplo OrderBy ("someColumnName"). Reverse()? Parece un truco ...

Cualquier consejo sería muy apreciado ...

Respuesta

44

Suponiendo que está usando los archivos DynamicQuery ayudante de la biblioteca de ejemplo de Microsoft (que están en el espacio de nombres System.Linq.Dynamic) a continuación, después de leer el código fuente parece que es necesario especificar el orden que desee de la siguiente manera:

myDataSource.OrderBy("someColumnName descending") 
+0

Pensé que el método OrderByDescending no acepta solo 1 parámetro de cadena? –

+0

Lo siento, he escrito mal la respuesta. El método OrderBy en DynamicQuery helper de Microsoft le permite especificar ordenamientos de cadenas separadas por comas como este. –

+3

Sí, esta era la respuesta que estaba buscando. Si pudiera agregar, puede simplemente decir myDataSource.OrderBy ("someColumnName DESC") en otras palabras, no tiene que escribir toda la palabra descendente. – Marko

8

Si está utilizando valores de cadena (como yo) que tendrá que concatenarlo a la cadena como esta :

myDataSource.OrderBy(columnName + " descending"); 

No olvide agregar un espacio antes de 'descender'; de lo contrario, obtendrá un error.