图 API 过滤用户资源错误
Graph API Filtering on User Resource Error
我有以下代码:
var users = await graphClient.Users
.Request()
.Header("ConsistencyLevel", "eventual")
.Select("DisplayName, Id, userType, employeeid, accountEnabled, companyName")
.Filter("userType eq 'Member' AND employeeid ge ' '")
.GetAsync();
在我将 AND companyName ge ' ' 添加到过滤器之前,它工作正常。完整的过滤器查询如下:
.Filter("userType eq 'Member' AND employeeid ge ' ' AND companyName ge ' '")
将 companyName 添加到过滤器时,出现错误:
Microsoft.Graph.ServiceException: '代码: Request_UnsupportedQuery
消息:为资源 'User'.
的 属性 'companyName' 指定的不支持或无效的查询过滤器子句
根据 Microsoft 文档 (https://docs.microsoft.com/en-us/graph/api/resources/user?view=graph-rest-1.0),此查询应该有效。
当我尝试过滤 accountEabled 时,同样的事情发生了。我怀疑如果我能修好一个,我就能修好另一个。我错过了什么吗?
需要注意的是,我正在连接到 GCC High Tenant for the Graph API,其中一些资源可能不受支持。关于可用于过滤的资源,我找不到 GCC High 的特定文档。我首先要确保我没有犯编码错误。
您应该将 $count=true 添加到您的查询中(我正在 graph explorer 中测试您的查询)
此查询无效
Unsupported or invalid query filter clause specified for property
'companyName' of resource 'User'.
https://graph.microsoft.com/v1.0/users?$filter=userType eq 'Member' AND employeeid ge ' ' AND companyName ge ' '
此查询有效(也适用于 header ConsistencyLevel=eventual)
https://graph.microsoft.com/v1.0/users?$count=true&$filter=userType eq 'Member' AND employeeid ge ' ' AND companyName ge ' '
Advanced query capabilities on Azure AD directory objects
对于 c# 代码,$count=true 你可以通过添加 QueryOption 来设置查询构建器,像这样:
var options = new List<QueryOption>();
options.Add(new QueryOption("$count", "true"));
var users = await graphClient.Users
.Request(options)
.Header("ConsistencyLevel", "eventual")
.Select("DisplayName, Id, userType, employeeid, accountEnabled, companyName")
.Filter("userType eq 'Member' AND employeeid ge ' '")
.QueryOption("
.GetAsync();
我有以下代码:
var users = await graphClient.Users
.Request()
.Header("ConsistencyLevel", "eventual")
.Select("DisplayName, Id, userType, employeeid, accountEnabled, companyName")
.Filter("userType eq 'Member' AND employeeid ge ' '")
.GetAsync();
在我将 AND companyName ge ' ' 添加到过滤器之前,它工作正常。完整的过滤器查询如下:
.Filter("userType eq 'Member' AND employeeid ge ' ' AND companyName ge ' '")
将 companyName 添加到过滤器时,出现错误:
Microsoft.Graph.ServiceException: '代码: Request_UnsupportedQuery 消息:为资源 'User'.
的 属性 'companyName' 指定的不支持或无效的查询过滤器子句根据 Microsoft 文档 (https://docs.microsoft.com/en-us/graph/api/resources/user?view=graph-rest-1.0),此查询应该有效。
当我尝试过滤 accountEabled 时,同样的事情发生了。我怀疑如果我能修好一个,我就能修好另一个。我错过了什么吗?
需要注意的是,我正在连接到 GCC High Tenant for the Graph API,其中一些资源可能不受支持。关于可用于过滤的资源,我找不到 GCC High 的特定文档。我首先要确保我没有犯编码错误。
您应该将 $count=true 添加到您的查询中(我正在 graph explorer 中测试您的查询)
此查询无效
Unsupported or invalid query filter clause specified for property 'companyName' of resource 'User'.
https://graph.microsoft.com/v1.0/users?$filter=userType eq 'Member' AND employeeid ge ' ' AND companyName ge ' '
此查询有效(也适用于 header ConsistencyLevel=eventual)
https://graph.microsoft.com/v1.0/users?$count=true&$filter=userType eq 'Member' AND employeeid ge ' ' AND companyName ge ' '
Advanced query capabilities on Azure AD directory objects
对于 c# 代码,$count=true 你可以通过添加 QueryOption 来设置查询构建器,像这样:
var options = new List<QueryOption>();
options.Add(new QueryOption("$count", "true"));
var users = await graphClient.Users
.Request(options)
.Header("ConsistencyLevel", "eventual")
.Select("DisplayName, Id, userType, employeeid, accountEnabled, companyName")
.Filter("userType eq 'Member' AND employeeid ge ' '")
.QueryOption("
.GetAsync();