Azure AD Graph任何$ filter语法

时间:2018-04-04 21:32:47

标签: azure-ad-graph-api

我并不完全理解here under the $filter documentation提供的示例中的any语法。我也无法找到更多关于它的信息。

  

查询多值属性时支持任何。例如:https://graph.windows.net/contoso.com/users?api-version=2013-11-08& $ filter = userPrincipalName eq'Mary@Contoso.com'或proxyAddresses / any(c:c eq'smtp:Mary@Contoso.com')

c:c部分是什么?看起来像一个lambda ......

2 个答案:

答案 0 :(得分:2)

  

什么是c:c部分?好像是lambda ......

是的,你是对的。我们可以从tutorial

获取有关$ filter Lambda Operators的更多信息
  

OData定义了两个运算符 any all ,用于计算集合上的布尔表达式。他们可以处理集合属性或实体集合。

根据UserEnity,我们可以知道proxyAddresses是 Collection(Edm.String)。因此any(c:c eq 'smtp:Mary@Contoso.com')等于User.proxyAddresses.Where(c=>c.equals("smtp:Mary@Contoso.com")

答案 1 :(得分:1)

是的,你是对的。 c是一个lambda变量,c eq 'smtp:Mary@Contoso.com'是lambda表达式。

proxyAddresses/any(c:c eq 'smtp:Mary@Contoso.com')将返回lambda表达式返回true的proxyAddresses集合。

可以找到更多示例和解释here