Запрос OData $ top в выражении LINQ не может быть переведен и будет оцениваться локально с использованием EF Core и .NET Core 2.2 - PullRequest
0 голосов
/ 16 октября 2019

У меня есть конечная точка OData в .NET Core API:

[EnableQuery]
[ODataRoute]
[HttpGet]
public IQueryable<MerchantDto> GetAll()
{
    return _context
        .Merchants
        .Where(x => !x.IsDeleted)
        .ProjectTo<MerchantDto>(_mapper.ConfigurationProvider);
}

Он генерирует SQL без оператора LIMIT (postgres db), и появляется это предупреждение:

LINQ-выражение «Take (__ TypedProperty_1)» не может быть переведено и будет оценено локально.

Как мне сделать этот запрос к БД, чтобы включить OData $top? Сначала всегда получаются записи всей таблицы.

1 Ответ

0 голосов
/ 04 ноября 2019

У меня была неправильная конфигурация сопоставления объектов, которая вызвала эту проблему.

...