У меня есть generic метод преобразующий IQueryable<T> и возвращающий IOrderedQuerable<T> при помощи Linq-to-Entities.
Простой способ input.OrderBy(p => p.something) не работает, так как я не знаю свойства T и проставить какое-либо ограничение.
Каст результата к IOrderedQuerable<T> якобы работает, пока в рантайме не вызывать методы типа .Skip() или .Take(), что вызовет ошибку.
Думаю, что теоретически можно использовать рефлексию, но это кажется достаточно грязным хаком.
Как можно решить подобную задачу?
Свободный перевод вопроса Casting IQueryable to IOrderedQueryable generically от участника @Toodleey.
Используйте:
input.OrderBy(p => 0);
При этом никакая сортировка применяться не будет. Однако это потребует некоторых накладных расходов процессора.
Свободный перевод ответа Casting IQueryable to IOrderedQueryable generically от участника @RePierre.
Сборка персонального компьютера от Artline: умный выбор для современных пользователей