【问题标题】:System.Linq.Dynamic does not support OrderByDescending("someColumn")?System.Linq.Dynamic 不支持 OrderByDescending("someColumn")?
【发布时间】:2012-03-30 00:35:56
【问题描述】:

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

myDataSource.OrderByDescending("someColumnName")

因为我收到以下错误:

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

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

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

【问题讨论】:

    标签: asp.net vb.net linq


    【解决方案1】:

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

    myDataSource.OrderBy(columnName + " descending");
    

    不要忘记在“降序”之前添加一个空格,否则会出错。

    【讨论】:

      【解决方案2】:

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

      myDataSource.OrderBy("someColumnName descending")
      

      【讨论】:

      • 我以为 OrderByDescending 方法不只接受 1 个字符串参数?!
      • 对不起 - 我打错了答案。 Microsoft 的 DynamicQuery 帮助程序中的 OrderBy 方法允许您指定逗号分隔的字符串排序,例如。
      • 是的,这就是我正在寻找的答案。如果我可以补充一下,您实际上可以只说 myDataSource.OrderBy("someColumnName DESC") ,换句话说,您不必输入整个降序词。
      • 工作,尽管从框架设计来看并不直观。如果 System.Linq.Dynamic 还包含一个仅接受字符串参数的 OrderByDescending 方法(例如 OrderBy
      猜你喜欢
      • 2016-03-18
      • 1970-01-01
      • 1970-01-01
      • 2017-04-01
      • 2010-11-26
      • 1970-01-01
      • 1970-01-01
      • 2018-10-05
      • 1970-01-01
      相关资源
      最近更新 更多