7

有什么方法可以查明 IQueryable 对象是否在其表达式树中应用了 OrderBy?

我的情况是网格控件启用了分页,并且每列排序。但是默认情况下没有应用排序,所以在这种情况下,Linq to SQL 对行数进行了非常大的选择,所以在所有情况下我都需要提供一个排序依据,但是我应该只应用主键的默认排序如果没有指定其他顺序。

那么这可能吗?

4

1 回答 1

6

ExpressionVisitor您可以通过使用自定义或您选择的任何递归遍历机制检查查询的表达式树来找出答案。

我觉得你的代码设计得不好。您可能应该将排序已在某处应用的事实存储为bool. 也许您的应用程序的信息流需要重新架构。

使用这种检查方法,您正在以一种骇人听闻的方式恢复这些信息。

于 2013-07-17T10:34:38.520 回答