OData多重扩展和过滤

时间:2018-07-25 18:21:43

标签: odata

我已经阅读了OData文档和各种堆栈溢出问题,似乎无法弄清楚涉及多个$expand$filter语句的OData查询的语法。

我正在尝试做这样的事情:

https://odata-api.blah.com/accounts?$expand=company&$filter=company/name eq 'Nebcorp'&$expand=company/company_plan

通过帐户表,我将通过一对导航属性来扩展公司和公司计划表。进行上述查询(或其变体)会导致500错误。

有想法吗?

1 个答案:

答案 0 :(得分:0)

我不确定100%是否要实现什么目标,因此这里有几件事可能会有所帮助:

您可以使用逗号添加多个过滤器,例如: $expand=Company,Friends

您可以使用方括号来扩展嵌套属性,如下所示: $expand=Company($expand=company_plan)

您可以过滤所有这些扩展,例如,如果您拥有所有公司的集合属性而不是Company,则可以执行以下操作:

$expand=Companies($expand=company_plan;$filter=Current eq 'y')

因此,我认为您将需要这两个URL中的一个,具体取决于您是否想要“公司Nebcorp的所有帐​​户”-https://.../accounts?$expand=company($expand=company_plan)&$filter=company/name eq 'Nebcorp'

或者您是否想要“所有帐户,扩展公司详细信息和计划,但仅适用于Nebcorp”-https://.../accounts?$expand=company($expand=company_plan;$filter=name eq 'Nebcorp')