是否可以在OData导航属性上进行过滤?

ElH*_*aix 4 filtering odata

USERS集合包含USERGROUPS导航属性.

用户可以通过访问/api/Users?$expand=USERGROUPS.

USERGROUPS导航属性包含ID,我想通过以下方式按UserGroups.Id进行过滤:

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

最后,我希望能够过滤特定的组ID值.

谢谢.

Vit*_*SFT 17

实际上OData V3支持any/all运算符.因此,例如,如果您要搜索属于ID为'a'的用户组的所有用户,则查询将类似于:

/api/Users?$filter=USERGROUPS/any(usergroup: usergroup/ID eq 'a')
Run Code Online (Sandbox Code Playgroud)

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