OData核心库-如何使用服务器端分页

问题描述 投票:0回答:1

如何使用OData Core Client库使用服务器端分页?

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

var serviceRoot = "https://...";
var dataServiceContext = new GraphService(new Uri(serviceRoot));

var theCollection = await dataServiceContext.CollectionProperty.ExecuteAsync();

var countOfFristPageCollection = theCollection.Count();
.net-core odata
1个回答
0
投票

最后,我在lib的文档(here link)中发现了此错误,但出现了错误(它们使用Execute方法的同步版本,而它们的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());
}
© www.soinside.com 2019 - 2024. All rights reserved.