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

Mar*_*rko 26 linq vb.net asp.net

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

myDataSource.OrderByDescending( "someColumnName")

因为我收到以下错误:

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

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

任何建议将不胜感激...

Leo*_*rke 54

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

myDataSource.OrderBy("someColumnName descending")
Run Code Online (Sandbox Code Playgroud)

  • 是的,这是我正在寻找的答案.如果我可以添加你实际上只是说myDataSource.OrderBy("someColumnName DESC")换句话说你不必输入整个降序词. (3认同)

小智 8

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

myDataSource.OrderBy(columnName + " descending");
Run Code Online (Sandbox Code Playgroud)

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