Dynamische Linq-Reihenfolge nach verschachtelter Eigenschaft mit NULL-Eigenschaften

Ich benutze diese dynamische linq orderby Funktion, von der ich bekommen habeHier.

Dies funktioniert gut mit verschachtelten Eigenschaften, so dass ich dies tun könnte:

var result = data.OrderBy("SomeProperty.NestedProperty");

Das Problem ist, dass, wenn SomeProperty null ist, die Ausführung von OrderBy für NestedProperty den berüchtigten "Objektverweis, der nicht auf eine Instanz eines Objekts festgelegt ist" auslöst.

Ich vermute, dass ich die folgenden Zeilen anpassen muss, um die Ausnahme zu behandeln:

expr = Expression.Property(expr, pi);

// Or

LambdaExpression lambda = Expression.Lambda(delegateType, expr, arg);    

Ich habe darüber nachgedacht, einen Anweisungstext zu erstellen, in dem ich im schlimmsten Fall einen try catch verwenden könnte, aber das hat nicht funktioniert, da in orderby linq - Anweisungen keine Anweisungstexte vorhanden sein können: "Ein Lambda - Ausdruck mit einem Anweisungstext kann nicht konvertiert werden ein Ausdrucksbaum "

Ich habe hier irgendwelche Vorschläge verloren, wie ich das erreichen kann?

Dies gilt übrigens für Linq to Objects, nicht für Datenbanken.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage