如何在OData上扩展多个属性
假设我有这个OData表达式:如何在OData上扩展多个属性,odata,Odata,假设我有这个OData表达式: http://services.odata.org/northwind/northwind.svc/Categories? $expand=Products/Category 它将正确展开产品。类别 现在我想扩展另一个属性。例如“Products.Supplier” 我已尝试复制$expand用法: http://services.odata.org/northwind/northwind.svc/Categories? $expand=Prod
http://services.odata.org/northwind/northwind.svc/Categories?
$expand=Products/Category
它将正确展开产品。类别
现在我想扩展另一个属性。例如“Products.Supplier”
我已尝试复制$expand
用法:
http://services.odata.org/northwind/northwind.svc/Categories?
$expand=Products/Category
&$expand=Products/Supplier
但返回此错误失败:
Query parameter '$expand' is specified, but it should be specified exactly once.
根据OData ABNF,扩展语法应为: expand=“$expand”EQ expandItem*(逗号expandItem) 这相当于:
$expand=expandItem1,expandItem2,expandItem3,...
因此,请尝试:
有关详细信息,请参阅:
您也可以尝试使用此语法来扩展多个级别:
$expand=Products($expand=Category),...
这与WebAPI中的MS OData实现配合得很好。对于我们的SAP顾问: 我们也可以在oData中使用多个级别。 您需要以这种方式传递它:
<host>/API_BUSINESS_PARTNER/Identification?$expand=to_Parent,to_Parent/to_Role
/API\u业务\u合作伙伴/标识?$expand=to\u父级、to\u父级/to\u角色
上面的示例提供了获取另一个扩展的扩展的能力。在本例中,转到\u父对象->转到\u角色。“to_Role”仅在家长级别可用。因为此页面是google扩展OData多个级别的结果的顶部,尽管这不是OP的问题,此答案解决了我的相关问题。