hereから取得したこの動的linq orderby関数を使用しています。
これはネストされたプロパティでうまく機能するので、これを行うことができます:
var result = data.OrderBy("SomeProperty.NestedProperty");
問題は、SomeProperty が null の場合、NestedProperty で OrderBy を実行すると、悪名高い「オブジェクト参照がオブジェクトのインスタンスに設定されていません」がスローされることです。
例外を処理するには、次の行をカスタマイズする必要があると思います。
expr = Expression.Property(expr, pi);
// Or
LambdaExpression lambda = Expression.Lambda(delegateType, expr, arg);
最悪のシナリオで try catch を使用できるステートメント本体を作成することを考えましたが、orderby linq ステートメント内にステートメント本体を含めることができないため、それは機能しませんでした。式ツリー」
私はここで迷子になっています。これを達成する方法について何か提案はありますか?
ちなみに、これはLinq to Objects用で、データベース関連ではありません。