如何在 Graph API 上同时基于用户资源字段和 schemaExtension 属性进行过滤?

How to filter on based on user resource field and schemaExtension properties together on Graph API?

我正在尝试过滤具有特定 schemaExtension 和 assignedPlan 的用户。但是我收到错误响应。

这里是my request, and schemaExtension i used.

回复可见下方

{
"error": {
    "code": "Request_BadRequest",
    "message": "Unrecognized 'Edm.String' literal 'guid'4828c8ec-dc2e-4779-b502-87ac9ce28ab7'' at '39' in 'assignedPlans/any(x:x/servicePlanId eq guid'4828c8ec-dc2e-4779-b502-87ac9ce28ab7' and capabilityStatus eq 'Enabled') and e2_7a1a4a282deb46ab9b054b0186f0f945_exthpvhyp3h_imported/isImported eq true'.",
    "innerError": {
        "date": "2021-03-15T11:45:39",
        "request-id": "e36d0163-7486-4c0c-aa26-9ef2f815b416",
        "client-request-id": "3cf2d2a3-59d1-4b7a-e5ee-c54a16a82ce3"
    }
}

}

如何同时根据 assignedPlans 和 schemaExtension 进行过滤?

您可以使用以下查询筛选 assignedPlans。

https://graph.microsoft.com/beta/users?$count=true&$filter=assignedPlans/any(a:a/servicePlanId eq bf6f5520-59e3-4f82-974b-7dbbc4fd27c7 and a/capabilityStatus eq 'Enabled')

添加headerConsistencyLevel=eventual

但是您不能按照 Known issues 文档中指定的方式过滤架构扩展。从上述查询中获得结果后,使用该数据并通过编写代码在您的终端对其进行过滤。