OData 4将过滤器应用于导航属性

时间:2018-10-17 16:58:42

标签: odata

我正在尝试将过滤器应用于导航属性。根据本文档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规则?

非常感谢

0 个答案:

没有答案