使用 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();
  1. 像这样从结果中提取 skipToken:
var skipToken = groupMembersPaged.NextPageRequest.QueryOptions
    .Where(qo => qo.Name == "$skiptoken")
    .FirstOrDefault();
  1. 如果skipToken存在,在下一个请求中使用它:
if (skipToken != null)
{
    var queryOptions = new List<QueryOption>
    {
        new QueryOption("$skiptoken", skipToken.Value)
    };

    var groupMembersPagedSkip = await graphClient.Groups[groupId]
        .Members
        .Request(queryOptions)
        .GetAsync();
}