OrderBy: не может быть переведен и будет оцениваться локально.

После изменения ef core 3.0 я не могу заказывать столбцы непосредственно с сервера sql.


return query.Where(x=>!x.IsDeleted).OrderByDescending(x => x.Id).Skip(pageSize.Value * (pageNumber.Value - 1)).Take(pageSize.Value)
                         .ToList();

После обновления до .net core 3.0 я получаю сообщение об ошибке «Невозможно оценить».


person John Doe    schedule 16.08.2019    source источник
comment
В настоящее время нет EF Core 3.0. У нас есть предварительная версия EF Core 3.0, и, как и в любом предварительном (бета) программном обеспечении, ожидается, что она будет иметь проблемы и не должна использоваться в производственном коде.   -  person Ivan Stoev    schedule 17.08.2019
comment
попробуйте сохранить pageSize.Value и pageNumber.Value в переменных и используйте переменные в методах Skip и Take   -  person Kahbazi    schedule 17.08.2019
comment
@Kahbazi У меня проблема с заказом без пейджинга   -  person John Doe    schedule 19.08.2019


Ответы (1)


Вы можете добавить AsEnumerable() прямо перед заказом, если процесс обработки был возможен на стороне клиента.

return query.Where(x=>!x.IsDeleted)
    .AsEnumerable()
    .OrderByDescending(x => x.Id)
    .Skip(pageSize.Value * (pageNumber.Value - 1))
    .Take(pageSize.Value).ToList();
person Sajjad Mortazavi    schedule 27.04.2020