我已经阅读了OData文档和各种堆栈溢出问题,似乎无法弄清楚涉及多个$expand
和$filter
语句的OData查询的语法。
我正在尝试做这样的事情:
https://odata-api.blah.com/accounts?$expand=company&$filter=company/name eq 'Nebcorp'&$expand=company/company_plan
通过帐户表,我将通过一对导航属性来扩展公司和公司计划表。进行上述查询(或其变体)会导致500错误。
有想法吗?
答案 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')