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