考虑我有这个OData表达式:
http://services.odata.org/northwind/northwind.svc/Categories?
$expand=Products/Category
它会正确展开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.
答案 0 :(得分:20)
根据OData ABNF,扩展语法应为:
expand =' $ expand' EQ expandItem *(COMMA expandItem)
相当于:
$expand=expandItem1,expandItem2,expandItem3,...
所以请尝试:
有关详细信息,请参阅:
http://www.odata.org/documentation/odata-version-2-0/uri-conventions/#ExpandSystemQueryOption
答案 1 :(得分:10)
您也可以尝试使用此语法扩展多个级别:
$expand=Products($expand=Category),...
这适用于WebAPI中的MS OData实现。
答案 2 :(得分:0)
对于我们的SAP顾问: 我们也可以在oData中使用多级。 您需要通过这种方式传递它:
<host>/API_BUSINESS_PARTNER/Identification?$expand=to_Parent,to_Parent/to_Role
上面的示例使您能够获取另一个扩展的扩展。在这种情况下,to_parent-> to_Role。 “ to_Role”仅在父级上可用。