OData查询嵌套导航属性上的$Filter [英] odata query $filter on nested navigation property

查看:6
本文介绍了OData查询嵌套导航属性上的$Filter的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个包含订单导航属性的实体客户和一个包含产品导航属性的订单(一对多)。

现在我如何筛选已订购特定产品的所有客户。我尝试了下面提到的每种排列,但引发了odata异常:

试用版1)Customers?$filter=Orders/Products/any(d:d/ProductCode公式1)

试用2)Customers?$expand=Orders($expand=Products))&;$filter=Orders/Products/any(d:d/ProductCode公式‘code1’)

试用3)Customers?$expand=Orders($expand=Products))&;$filter=Orders/any(d:d/Products/ProductCode公式‘code1’)

请建议正确的OData查询格式。

推荐答案

我认为您在这里需要两个不同的any子句,因为我认为您要求的是"具有任何订单的客户,而这些客户又拥有任何产品,其产品代码为‘code1’"

所以我认为它应该是这样的:

Customers?$filter= Orders/any(o: o/Products/any(p: p/ProductCode eq 'code1'))

以下是使用Trippin OData服务示例的示例:http://services.odata.org/V4/TripPinServiceRW/People?$filter=Friends/any(f:%20f/Trips/any(t:%20t/Name%20eq%20'Trip%20in%20US'))&$expand=Friends($expand=Trips)

这篇关于OData查询嵌套导航属性上的$Filter的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆