有什么方法可以查明 IQueryable 对象是否在其表达式树中应用了 OrderBy?
我的场景是网格控件启用了分页,并按列排序。但是默认情况下没有应用排序,所以在这种情况下,Linq to SQL 对行数进行了非常大的选择,因此在所有情况下我都需要提供排序依据,但是我应该只按主键应用默认排序如果没有指定其他顺序。
这可能吗?
最佳答案
您可以通过使用自定义 ExpressionVisitor
或您选择的任何递归遍历机制检查查询的表达式树来找出答案。
我感觉你的代码设计得不好。您可能应该将排序已在某处应用的事实存储为 bool
。也许您的应用程序的信息流需要重新架构。
通过这种检查方法,您将以一种骇人听闻的方式恢复此信息。
关于c# - 通过应用检查 Linq IQueryable 是否有订单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17697343/