Я использую эту динамическую функцию упорядочивания linq, которую я получил от здесь.
Это прекрасно работает с вложенными свойствами, поэтому я могу это сделать:
var result = data.OrderBy("SomeProperty.NestedProperty");
Проблема заключается в том, что если SomeProperty имеет значение null, то выполнение OrderBy в NestedProperty бросает печально известную "ссылку на объект, не установленную на экземпляр объекта".
Я предполагаю, что мне нужно настроить следующие строки для обработки исключения:
expr = Expression.Property(expr, pi);
// Or
LambdaExpression lambda = Expression.Lambda(delegateType, expr, arg);
Я думал о создании тела оператора, где я мог бы в худшем случае использовать try catch, но это не сработало, поскольку вы не можете иметь тела операторов в orderby выражения linq: "Ярб-выражение с телом оператора не может преобразуется в дерево выражений"
Я потерялся здесь, любые предложения о том, как я могу это сделать?
Кстати, это для Linq для объектов, а не для базы данных.