如何筛选使用Microsoft Graph

时间:2018-02-08 17:58:10

标签: c# sharepoint microsoft-graph

我正在使用.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(); 这不起作用 - 它给我一个错误,扩展,选择和过滤是唯一允许的查询。

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

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

2 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:0)

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

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

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