Обобщённое приведение IQueryable к IOrderedQueryable

70
22 марта 2022, 07:10

У меня есть generic метод преобразующий IQueryable<T> и возвращающий IOrderedQuerable<T> при помощи Linq-to-Entities.

Простой способ input.OrderBy(p => p.something) не работает, так как я не знаю свойства T и проставить какое-либо ограничение.

Каст результата к IOrderedQuerable<T> якобы работает, пока в рантайме не вызывать методы типа .Skip() или .Take(), что вызовет ошибку.

Думаю, что теоретически можно использовать рефлексию, но это кажется достаточно грязным хаком.

Как можно решить подобную задачу?

Свободный перевод вопроса Casting IQueryable to IOrderedQueryable generically от участника @Toodleey.

Answer 1

Используйте:

input.OrderBy(p => 0);

При этом никакая сортировка применяться не будет. Однако это потребует некоторых накладных расходов процессора.

Свободный перевод ответа Casting IQueryable to IOrderedQueryable generically от участника @RePierre.

READ ALSO
Как добавить ReactJS к проекту AspNet?

Как добавить ReactJS к проекту AspNet?

Пытаюсь как тут добавить ReactJS к проекту, но при добавлении этой строки:

107
Как ставить Awake&#39;и в очередь

Как ставить Awake'и в очередь

У меня есть несколько скриптов, в одном выполняется в Awake парсинг xml, и значения заносятся в Dictionary, а в других выполняется получение значения...

117
Как правильно разместить такие стрелки?

Как правильно разместить такие стрелки?

Как расположить эти стрелки правильно? Желательно чтоб до 720px они не сильно сползали, если это сложно реализовать, то хотя бы чтоб до 992px было...

207