我正在尝试将过滤器应用于导航属性。根据本文档http://docs.oasis-open.org/odata/odata/v4.01/cs01/part2-url-conventions/odata-v4.01-cs01-part2-url-conventions.html#_Toc505773298
,似乎有可能示例121:最多选择五个地址,其城市以H开头,排序并以国家/地区展开
http://host/service/Customers?$ select =地址($ filter = startswith(City,'H'); $ top = 5; $ orderby =国家/名称,城市,街道; $ expand =国家)
这似乎是将过滤器,顶部等应用于“地址导航”属性,而这正是我想要做的。
使用services.data.org测试站点我试图构造一个查询来复制它
https://services.odata.org/V4/Northwind/Northwind.svc/Customers?$ select = CustomerID,Orders&$ expand = Orders
这很好,但是每个客户可能有数百万个订单。所以我想过滤,在导航属性的顶部。但是当我尝试这种事情
https://services.odata.org/V4/Northwind/Northwind.svc/Customers?$ select = CustomerID,Orders($ top = 10)&$ expand = Orders
我收到一条错误消息
“消息”:“术语'CustomerID,Orders($ top = 10)'在$ select或$ expand表达式中无效。”
我做错了。是我遗漏了某些东西还是该站点实际上未遵守OData v4规则?
非常感谢