检查Linq IQueryable是否已应用订单

Gro*_*fit 7 c# linq expression-trees

有没有办法找出IQueryable对象是否在其表达式树中应用了OrderBy?

我的方案是网格控件启用了分页,并按列排序.但是默认情况下没有应用排序,所以在这种情况下,Linq to SQL对行计数做了非常大的选择,所以在所有场景中我都需要提供一个order by,但是我应该只应用主键的默认顺序如果没有指定其他订单.

这可能吗?

usr*_*usr 6

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

我觉得你的代码设计得不好.您可能应该存储这样一个事实,即订购已经应用于某个地方bool.也许您的应用程序的信息流需要重新架构.

通过这种检查方法,您将以一种hackish方式恢复此信息.