Я использую OData Top и Skip в моем запросе клиента. Например;
var accessToken = await _psUtils.GetUspsReferenceApiAccessToken(token);
var client = new ODataClient(SetODataToken(_psUtils.GetBaseUspsReferenceApiUrl(), accessToken));
var annotations = new ODataFeedAnnotations();
addressComplianceCodes = await client.For<AddressComplianceCode>()
.Filter(x => x.Description.Contains(searchValue) || x.Code.Contains(searchValue))
.Top(pageSize).Skip(skip)
.OrderByDescending(sortColumn)
.FindEntriesAsync(annotations, token);
и в моем клиентском коде у меня есть пейджер, который отслеживает значения, которые я передаю наверх, и пропускаю, чтобы я мог просматривать страницы. Вверху указано общее количество записей на странице. Объект annotations возвращает свойство Count, которое можно использовать для отображения общего количества записей. То есть
annotations.Count
Вот ссылка на учебник OData.org , в котором говорится о top и skip.
https://github.com/simple-odata-client/Simple.OData.Client/wiki/Results-projection,-paging-and-ordering, что говорит о подкачке.