Глобальный размер страницы OdataC#

Место общения программистов C#
Anonymous
Глобальный размер страницы Odata

Сообщение Anonymous »

Может кто-нибудь объяснить, почему мой фильтр EnableQueryAttribute не срабатывает, когда клиентский запрос не включает в себя Count=True? Возвращается весь мой набор данных.

Код: Выделить всё

public class EnableQueryWithDefaultPageSizeAttribute : EnableQueryAttribute
{
const int pageSizeDefault = 100;

public override IQueryable ApplyQuery(IQueryable queryable, ODataQueryOptions queryOptions)
{
int pagesize = pageSizeDefault;
var result = queryOptions.ApplyTo(queryable, new ODataQuerySettings { PageSize = pagesize });
return result;
}
}
Следующий запрос активирует фильтр:

Код: Выделить всё

https://localhost:5001/api/teams?$count=true
Этот запрос не активирует фильтр:

Код: Выделить всё

https://localhost:5001/api/teams
Единственный способ решить эту проблему — прямо сейчас жестко запрограммировать метод моего контроллера с помощью:

Код: Выделить всё

 [EnableQuery(PageSize = 100)]
Мое золото — иметь глобальный фильтр, который устанавливает размер страницы для любого запроса API Odata. Я погуглил и прочитал документацию Microsoft, но до сих пор не могу найти решение. Любая помощь будет оценена по достоинству. В настоящее время я использую .net core 6.0 и AspNetCoreOdata 8.0.6.

Подробнее здесь: https://stackoverflow.com/questions/707 ... l-pagesize

Вернуться в «C#»