使用 MS Graph C# SDK 的分页功能,我是否可以获取 NextLink 并在稍后恢复通话?
Using paging functionality of MS Graph C# SDK, am I able to grab the NextLink and resume the call with it later?
我了解到,根据文档 here,使用 C# Graph SDK 库我可以继续请求下一页结果,直到 NextPageRequest == null,但我想知道我是否可以保存 NextLink I回来,如果我遇到错误,下次执行时,我可以在使用 NextLink(使用 C# SDK 库)的地方继续。
我无法在文档中找到与此相关的任何内容。这也许是我可以用 RequestBuilder 做的事情吗?
我想出来了,或者至少是一种使用 skipToken 的方法(也许有更好的内置库函数方法可以做到这一点)。
示例查询:
var groupMembersPaged = await graphClient.Groups[groupId]
.Members
.Request()
.Top(5)
.GetAsync();
- 像这样从结果中提取 skipToken:
var skipToken = groupMembersPaged.NextPageRequest.QueryOptions
.Where(qo => qo.Name == "$skiptoken")
.FirstOrDefault();
- 如果skipToken存在,在下一个请求中使用它:
if (skipToken != null)
{
var queryOptions = new List<QueryOption>
{
new QueryOption("$skiptoken", skipToken.Value)
};
var groupMembersPagedSkip = await graphClient.Groups[groupId]
.Members
.Request(queryOptions)
.GetAsync();
}
我了解到,根据文档 here,使用 C# Graph SDK 库我可以继续请求下一页结果,直到 NextPageRequest == null,但我想知道我是否可以保存 NextLink I回来,如果我遇到错误,下次执行时,我可以在使用 NextLink(使用 C# SDK 库)的地方继续。
我无法在文档中找到与此相关的任何内容。这也许是我可以用 RequestBuilder 做的事情吗?
我想出来了,或者至少是一种使用 skipToken 的方法(也许有更好的内置库函数方法可以做到这一点)。
示例查询:
var groupMembersPaged = await graphClient.Groups[groupId]
.Members
.Request()
.Top(5)
.GetAsync();
- 像这样从结果中提取 skipToken:
var skipToken = groupMembersPaged.NextPageRequest.QueryOptions
.Where(qo => qo.Name == "$skiptoken")
.FirstOrDefault();
- 如果skipToken存在,在下一个请求中使用它:
if (skipToken != null)
{
var queryOptions = new List<QueryOption>
{
new QueryOption("$skiptoken", skipToken.Value)
};
var groupMembersPagedSkip = await graphClient.Groups[groupId]
.Members
.Request(queryOptions)
.GetAsync();
}