有没有办法找出IQueryable对象是否在其表达式树中应用了OrderBy?
我的方案是网格控件启用了分页,并按列进行排序。但是默认情况下没有应用排序,所以在这种情况下,Linq to SQL对行计数做了非常大的选择,所以在所有场景中我都需要提供一个order by,但是我应该只应用主键的默认顺序如果没有指定其他订单。
这可能吗?
答案 0 :(得分:6)
您可以通过使用自定义ExpressionVisitor
或您选择的任何递归遍历机制检查查询的表达式树来查找。
我觉得你的代码设计得不好。您可能只应存储订单已作为bool
应用于某处的事实。也许您的应用程序的信息流需要重新架构。
通过这种检查方法,您将以一种黑客的方式恢复此信息。