System.Linq.Dynamic不支持OrderByDescending(“someColumn”)?

时间:2012-03-13 15:22:18

标签: asp.net vb.net linq

好的,在我们的项目中,我正在使用System.Linq.Dynamic库,但我只是注意到我无法完成以下操作:

myDataSource.OrderByDescending( “someColumnName”)

因为我收到以下错误:

重载解析失败,因为无法使用这些参数调用可访问的OrderByDescending ...

似乎图书馆只支持OrderBy(“someColumnName”)。是否有这样的原因,如果我想按降序重新排序记录,我将如何绕过这个问题?我是否必须使用Reverse()例如OrderBy(“someColumnName”)。Reverse()?看起来像是一个黑客......

非常感谢任何建议......

2 个答案:

答案 0 :(得分:51)

假设您正在使用Microsoft示例库中的DynamicQuery Helper文件(位于命名空间System.Linq.Dynamic中),那么在阅读源代码后,您需要按如下方式指定所需的顺序:< / p>

myDataSource.OrderBy("someColumnName descending")

答案 1 :(得分:8)

如果你正在使用字符串值(像我一样),你必须将它连接到字符串,如下所示:

myDataSource.OrderBy(columnName + " descending");

不要忘记在'降序'之前添加空格,否则你会收到错误。