按显示名称过滤组成员不起作用
Filter group members by displayName does not work
我需要提供一个允许用户搜索组内成员的端点
下面的代码在没有传入过滤器时工作正常(它是 returns 组成员),但是当传入 queryString
时我得到这个错误
Microsoft.Graph.ServiceException: 'Code: Request_UnsupportedQuery
Message: The specified filter to the reference property query is currently not supported.
有什么明智的解决方法吗?
MS 声称此 属性 是可过滤的,但只能通过 url API 过滤吗?这是否意味着我正在尝试做的事情是不可能的?
似乎在他们的例子中他们总是设置 ConsistencyLevel: Eventual
- 但我不知道我们如何使用 GraphServiceClient
来设置它
我尝试将其添加为 header:
var consistencyLevelHeader = new HeaderOption("consistencylevel", "eventual");
request.Headers.Add(consistencyLevelHeader);
但我得到了相同的结果
var groupId = "guid-of-the-group";
var request = _graphServiceClient.Value.Groups[groupId]
.Members
.Request();
if (!string.IsNullOrEmpty(queryString))
{
request = request.Filter($"startswith(displayName,'{queryString}')");
}
var groupMembersCollection = await request
.GetAsync();
var userDtos = groupMembersCollection.Select(member =>
new AzureADAccountDTO
{
ProviderKey = member.Id,
EmailAddress = ((User)member).Mail,
Name = ((User)member).DisplayName,
})
.ToList();
return userDtos;
您需要添加 $count 查询参数以及 ConsistencyLevel
header 以获得成功的响应。
请求如下所示
https://graph.microsoft.com/v1.0/groups/0023c709-3556-4296-a6ab-6df2a0a1113c/members?$count=true&$filter=startswith(displayName, 's')
您可以在 Graph Explore 中测试这些图形调用。
我需要提供一个允许用户搜索组内成员的端点
下面的代码在没有传入过滤器时工作正常(它是 returns 组成员),但是当传入 queryString
时我得到这个错误
Microsoft.Graph.ServiceException: 'Code: Request_UnsupportedQuery Message: The specified filter to the reference property query is currently not supported.
有什么明智的解决方法吗?
MS 声称此 属性 是可过滤的,但只能通过 url API 过滤吗?这是否意味着我正在尝试做的事情是不可能的?
似乎在他们的例子中他们总是设置 ConsistencyLevel: Eventual
- 但我不知道我们如何使用 GraphServiceClient
我尝试将其添加为 header:
var consistencyLevelHeader = new HeaderOption("consistencylevel", "eventual");
request.Headers.Add(consistencyLevelHeader);
但我得到了相同的结果
var groupId = "guid-of-the-group";
var request = _graphServiceClient.Value.Groups[groupId]
.Members
.Request();
if (!string.IsNullOrEmpty(queryString))
{
request = request.Filter($"startswith(displayName,'{queryString}')");
}
var groupMembersCollection = await request
.GetAsync();
var userDtos = groupMembersCollection.Select(member =>
new AzureADAccountDTO
{
ProviderKey = member.Id,
EmailAddress = ((User)member).Mail,
Name = ((User)member).DisplayName,
})
.ToList();
return userDtos;
您需要添加 $count 查询参数以及 ConsistencyLevel
header 以获得成功的响应。
请求如下所示
https://graph.microsoft.com/v1.0/groups/0023c709-3556-4296-a6ab-6df2a0a1113c/members?$count=true&$filter=startswith(displayName, 's')
您可以在 Graph Explore 中测试这些图形调用。