OData Core Lib - 如何使用服务器端分页



如何使用 OData 核心客户端库使用服务器端分页?

使用下面的代码,我可以获取第一个页面大小的集合,但我想获取集合的其余部分(下一页(。当我解析 odata 响应时,我可以看到 nextPageLink 和 skipToken 值(所以它是服务器端分页(。现在,我想通过 OData 核心客户端库 API 使用分页。(我无法在其文档中找到它。仅有关如何解析参数的信息(。

var serviceRoot = "https://...";
var dataServiceContext = new GraphService(new Uri(serviceRoot));
var theCollection = await dataServiceContext.CollectionProperty.ExecuteAsync();
var countOfFristPageCollection = theCollection.Count();

最后,我在lib的文档中发现了这一点(此处链接(,但存在错误(他们使用执行方法的同步版本,而他们的API仅提供异步 - 我发布了它们(。

这是使用异步的正确代码:

var serviceRoot = "https://...";
var dataServiceContext = new MyOdataService(new Uri(serviceRoot));
DataServiceQueryContinuation<user> token = null;
var resp = (await dataServiceContext.users.ExecuteAsync()) as QueryOperationResponse<user>;
List<user> list = new List<user>();
list.AddRange(resp.ToList());
while ((token = resp.GetContinuation()) != null)
{
resp = await dataServiceContext.ExecuteAsync<user>(token) as QueryOperationResponse<user>;
list.AddRange(resp.ToList());
}

最新更新