OData V4 在 $expand 中多了一个选项
OData V4 more than one option in $expand
在 OData V4 中,您可以在 $expand 查询中嵌套作为选项:
1)$展开
http://services.odata.org/V4/OData/OData.svc/Categories?$expand=Products($expand=ProductDetail)
2)$级别
Entities($expand=ChildItems($level=x)) 其中 ChildItem 是同一类型的实体
3)$select
http://services.odata.org/V4/OData/OData.svc/Categories?$expand=Products($select=Price)&$select=Name,Products
我想像这样扩展 ProductDetail 但是当然行不通
http://services.odata.org/V4/OData/OData.svc/Categories?$expand=Products($expand=ProductDetail&$select=Price,ProductDetail)&$select=Name,Products
这个电话得到
Query parameter '$select' is specified, but it should be specified exactly once
所以你会认为你可以 $select 只在主要实体上,但情况 #3 完美地工作。
我知道我可以重写我的查询来实现我的目标,但我想知道这是否可行。
谢谢,
亚历山德罗
关键是分隔符。您必须用“;”分隔每个选项。
我找到了答案
案例 3 变为
http://services.odata.org/V4/OData/OData.svc/Categories?$expand=Products($select=Price,ProductDetail;$expand=ProductDetail)&$select=Name,Products
在 OData V4 中,您可以在 $expand 查询中嵌套作为选项:
1)$展开
http://services.odata.org/V4/OData/OData.svc/Categories?$expand=Products($expand=ProductDetail)
2)$级别
Entities($expand=ChildItems($level=x)) 其中 ChildItem 是同一类型的实体
3)$select
http://services.odata.org/V4/OData/OData.svc/Categories?$expand=Products($select=Price)&$select=Name,Products
我想像这样扩展 ProductDetail 但是当然行不通
http://services.odata.org/V4/OData/OData.svc/Categories?$expand=Products($expand=ProductDetail&$select=Price,ProductDetail)&$select=Name,Products
这个电话得到
Query parameter '$select' is specified, but it should be specified exactly once
所以你会认为你可以 $select 只在主要实体上,但情况 #3 完美地工作。
我知道我可以重写我的查询来实现我的目标,但我想知道这是否可行。
谢谢, 亚历山德罗
关键是分隔符。您必须用“;”分隔每个选项。
我找到了答案
案例 3 变为
http://services.odata.org/V4/OData/OData.svc/Categories?$expand=Products($select=Price,ProductDetail;$expand=ProductDetail)&$select=Name,Products