如何筛选使用Microsoft Graph查询的Sharepoint列表项

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何筛选使用Microsoft Graph查询的Sharepoint列表项相关的知识,希望对你有一定的参考价值。

我正在使用.net SDK。尝试使用Microsoft Graph过滤大型列表,

我的查询使用.Items.Request().Expand("fields").GetAsync();工作正常但是,如果我添加一个过滤器,它不会按预期工作。

我尝试了两种方法:

  1. 添加.Expand("fields").Filter("fields/Archived eq false").GetAsync();有效,但返回所有列表项而不进行过滤。
  2. 添加.Expand("fields($filter=Archived eq false)").GetAsync();这不起作用 - 它给我一个错误,扩展,选择和过滤是唯一允许的查询。

什么工作是("fields($select=Archived)"),但当然,没有过滤。

那么我们如何使用Microsoft Graph查询大型列表呢?

答案

您需要引用传递给过滤器的值:Fields/Archived eq 'false'(注意's):

var result = graphClient
    .Sites["root"]
    .SiteWithPath("siteId")
    .Lists["listId"]
    .Items
    .Request()
    .Expand("Fields")
    .Filter("Fields/Archived eq 'false'");
另一答案

经过对此问题的过多研究后,我发现以下解决方案及其对我的工作正常:

要过滤,您需要添加Header参数,如下所示:首选:HonorNonIndexedQueriesWarningMayFailRandomly

Graph api如下:&$ filter = Fields / Archived eq False

以上是关于如何筛选使用Microsoft Graph查询的Sharepoint列表项的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Microsoft Graph 上的扩展集合中进行筛选和选择?

C# 中的 Microsoft Graph 搜索筛选字符串

如何使用 microsoft graph api 获取 EndRecurrenceDate

Microsoft Graph API - 如何通过 API 向特定用户授予对我的收件箱的访问权限

用于 Microsoft Teams 消息的 Microsoft Graph Export API 可用了

用于 Microsoft Teams 消息的 Microsoft Graph Export API 可用了