Ordem de linq dinâmico por na propriedade aninhada com propriedades nulas

Eu estou usando essa função linq orderby dinâmica que eu tenho deAqui.

Isso funciona bem com propriedades aninhadas para que eu possa fazer isso:

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

O problema é que, se SomeProperty é nulo, executar o OrderBy no NestedProperty lança a infame "Referência de objeto não definida para uma instância de um objeto".

Meu palpite é que preciso personalizar as seguintes linhas para lidar com a exceção:

expr = Expression.Property(expr, pi);

// Or

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

Pensei em criar um corpo de instrução onde, na pior das hipóteses, eu poderia usar um try catch, mas isso não funcionava, pois não é possível ter corpos de instrução dentro da ordem das instruções linq: "Uma expressão lambda com corpo de instrução não pode ser convertida em uma árvore de expressão "

Estou perdido aqui, alguma sugestão de como posso conseguir isso?

A propósito, isso é para o Linq to Objects, não relacionado ao banco de dados.

questionAnswers(2)

yourAnswerToTheQuestion