无法使用Delta Query使用Microsoft Graph .NET SDK扩展MemberOf

时间:2017-12-07 10:37:41

标签: microsoft-graph

使用Delta查询时,扩展属性似乎不起作用。它适用于常规用户查询。

这是Microsoft Graph API的限制吗?

var usersInfo = graphServiceClientWithApplicationPermission.Users.Delta().Request().Expand("MemberOf").GetAsync();

// Add inital request users
foreach (var userInfo in usersInfo)
{

    // Member info doesn't seem to be expanded even if $expand=MemberOf is sent
    if (userInfo.MemberOf == null)
    {
        userInfo.MemberOf = await applicationPermissionsClient.Users[userInfo.Id].MemberOf.Request().GetAsync();
    }

    // MemberOf is now populated ??

}

1 个答案:

答案 0 :(得分:2)

似乎这是Microsoft Graph的另一个限制,不受支持。

  

可选查询参数

     

如果客户端使用查询参数,则必须在中指定   初始请求。 Microsoft Graph自动编码指定的   参数提供给响应中提供的nextLink或deltaLink。该   调用应用程序只需要指定他们想要的查询   参数一旦提前。 Microsoft Graph添加指定的参数   自动为所有后续请求。对于用户和组,t   以下是使用某些查询参数的限制:

     

如果使用$ select查询参数,则参数表示该参数   客户更喜欢只追踪属性的变化或   $ select语句中指定的关系。如果发生变化   到未选择的属性,即该资源   属性更改后不会出现在delta响应中   后续请求。不支持$ expand。

     

对于用户和群组beta(预览)API,范围过滤器允许您   跟踪objectId对一个或多个特定用户或组的更改。对于   例如,以下请求:   https://graph.microsoft.com/beta/groups/delta/?$ filter = id eq   ' 477e9fc6-5de7-4406-bb2a-7e5c83c9ae5f'或id eq   ' 004d6a07-fe70-4b92-ADD5-e6e37b8acd8e'返回组的更改   匹配查询过滤器中指定的ID。

https://developer.microsoft.com/en-us/graph/docs/concepts/delta_query_overview