在$ expand查询中的OData V4中,您可以将其作为选项嵌套:
1)$扩展
http://services.odata.org/V4/OData/OData.svc/Categories?$expand=Products($expand=ProductDetail)
2)$水平
实体($ expand = ChildItems($ level = x))其中ChildItem是相同类型的实体
3)$选择
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
此调用获取
查询参数' $ select'是指定的,但应该只指定一次
所以你会认为你只能在主要实体上选择$,但是情况#3完美无缺。
我知道我可以重写我的查询以实现我的目标,但我想知道这是否可行。
谢谢, 的Alessandro
答案 0 :(得分:8)
关键是分隔符。您必须用“;”分隔每个选项。 我找到了答案here
案例3成为
?http://services.odata.org/V4/OData/OData.svc/Categories $扩大=产品($选择=价格,产品详情; $扩大=产品详情)及$选择=名称,产品