4

一个USERS 集合包含一个USERGROUPS 导航属性。

用户通过/api/Users?$expand=USERGROUPS.

USERGROUPS 导航属性包含 ID,我想按 UserGroups.Id 过滤,例如:

/api/Users?$expand=USERGROUPS&$filter=startswith(USERGROUPS/ID,'a')

最终,我希望能够过滤特定的组 ID 值。

谢谢。

4

2 回答 2

19

实际上,OData V3 支持使用 any/all 运算符。因此,例如,如果您想搜索属于 id 为“a”的用户组的所有用户,则查询将类似于:

/api/Users?$filter=USERGROUPS/any(usergroup: usergroup/ID eq 'a')

但请注意,该功能仅在 OData V3 中受支持,因此您需要在服务器上启用该功能。

于 2013-08-06T23:16:44.207 回答
0

-- 已编辑 --

最初,我相信我在这里找到了答案:

OData 不支持对作为集合的导航属性进行筛选

由于在我的数据集中,UserGroups 是一个集合,因此无法对此属性执行过滤器。

但是- 使用上面给出的语法,并使用 OData v3,这非常好!

于 2013-08-06T19:45:48.193 回答