質問: IQueryableオブジェクトに式ツリー内にOrderByが適用されているかどうかを調べる方法はありますか? 私が持っているシナリオは、グリッドコントロールがページングを有効にし、列ごとにソートすることです。しかし、デフォルトではソートが適用されていないので、LinqからSQLへの行数は非常に大きく選択されます。したがって、すべてのシナリオで注文を行う必要がありますが、主キー他の注文が指定されていない場合 これは可能ですか?
回答: カスタム`ExpressionVisitor`または任意の再帰的トラバーサルメカニズムを使用して、クエリの式ツリーを調べることによって見つけることができます。 私はあなたのコードがうまく設計されていないと感じます。おそらく、注文は`bool`としてどこかに適用されているという事実だけを保存するべきです。アプリケーションの情報フローを再構築する必要があるかもしれません。 この検査手法を使用すると、この情報をハックのような形で回復しています。