System.Linq.Dynamic не поддерживает OrderByDescending ( "someColumn" )?
Хорошо, поэтому в нашем проекте я использую библиотеку System.Linq.Dynamic, но я только заметил, что я не могу сделать следующее:
myDataSource.OrderByDescending( "someColumnName" )
Потому что я получаю следующую ошибку:
Не удалось выполнить перегрузку, потому что с помощью этих аргументов нельзя вызвать доступ к OrderByDescending...
Кажется, что библиотека поддерживает только OrderBy ( "someColumnName" ). Есть ли причина для этого и как я обойду эту проблему, если я захочу изменить порядок записей в порядке убывания? Должен ли я пользователь Reverse(), например OrderBy ( "someColumnName" ). Reverse()? Похоже на взлом...
Любые советы будут очень признательны...
Ответы
Ответ 1
Предполагая, что вы используете файлы DynamicQuery Helper из библиотеки образцов Microsoft (которые находятся в пространстве имен System.Linq.Dynamic), то после прочтения исходного кода, похоже, вам нужно указать порядок, который вы хотите, следующим образом:
myDataSource.OrderBy("someColumnName descending")
Ответ 2
Если вы используете строковые значения (например, я), вам нужно будет связать его со строкой, как это:
myDataSource.OrderBy(columnName + " descending");
Не забудьте добавить пробел перед "нисходящим", иначе вы получите сообщение об ошибке.