@CityzenUNDEAD

Почему не получается встроить сортировку в IQueryable?

Приветствую!
У меня есть отсортированный список лонгов List numbers.
Так же у меня есть таблица в бд Records (id, name, desc).
Я хочу составить объект запроса IQueryable к этой таблице.
Но мне нужно что бы список записей/сущностей из таблицы в рамках запроса был отсортирован, сортировка в оперативной памяти не подходит.
Сортировка должна происходить по полю Records.id на основе порядка лонгов в списке numbers.
На просторах сети был найдет вот такой метод, который вроде бы эту задачу решает.
public IQueryable<Entity> Sort(IQueryable<Entity> query, List<int> ids)
        {
        
            var count = ids.Count;

            for (int i = 0; i < count; ++i)
            {
                int value = ids[i];
                if (query is IOrderedQueryable<Entity> orderedQuery)
                {
                    query = orderedQuery.ThenBy(d => d.Id == value);
                }
                else
                {
                    query = query.OrderBy(d => d.Id == value);
                }
            }
            return query;
        }

Но в момент его вызова, на этапе query = orderedQuery.ThenBy(d => d.Id == value) вылетает исключение:
Expression of type..IQueryable cannot be used for parameter of type IOrderedQueryable..
Непонятно, вроде бы запрос приводится к IOrderedQueryable, но при этом падает в исключение..
Прошу помочь разобраться.
  • Вопрос задан
  • 125 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы