当利用托管在不同服务器上的 Web Api 端点时,进行分页以避免过度序列化和反序列化同时仍然能够查看在 Get 请求中找到的匹配总数的最佳方法是什么?
网络接口:
[Queryable]
public IQueryable<Customer> Get(string input) {
return _repo.GetCustomers(input).AsQueryable();
}
控制器代码:
HttpResponseMessage response = client.GetAsync("api/customer?input=test&$top=2&$skip=0").Result; // test string
if (response.IsSuccessStatusCode) {
CustomerSearchResultViewModel resultViewModel = new CustomerSearchResultViewModel();
resultViewModel.Customers = response.Content.ReadAsAsync<IEnumerable<Customer>>().Result.ToList();
resultViewModel.TotalResults = resultViewModel.Customers.Count;
}
在此示例中,TotalResults 的上限为 2,而不是返回分页前找到的匹配总数。
有没有办法通过利用 OData 来获得总结果?如果这不可能,我怎样才能在获得所需数量的同时最好地保留 OData 功能?