o相关实体类型的数据过滤器

问题描述 投票:0回答:1

使用 Northwind v2 oData 服务,出于学习目的,我遇到了以下问题:

Employees
实体与
Orders
实体相关。使用扩展参数我可以获得所有相关的
Orders
。这里我想用一个过滤器来过滤,比方说,
CustomerID
。我一直在尝试按照不同的文档做这样的事情,但可以做到这一点:

https://services.odata.org/V2/Northwind/Northwind.svc/Employees?$expand=Orders&$filter=Orders/CustomerID eq 'ERNSH'

我们收到以下错误:“System.Data.Objects.DataClasses.EntityCollection”类型中不存在属性“CustomerID”1[[ODataWeb.Northwind.Model.Order, ODataWeb, Version=6.0.0.0, Culture=neutral, PublicKeyToken =69c3241e6f0468ca]]

CustomerID 应该存在于

Order
实体中,因为此调用会返回预期结果:

https://services.odata.org/V2/Northwind/Northwind.svc/Orders?$filter%20=CustomerID%20eq%20%27ERNSH%27

如何在嵌套的 entityType 上应用过滤器?

odata
1个回答
0
投票

如果

Orders
是一个集合,您可以在过滤器查询中使用
any

https://services.odata.org/V2/Northwind/Northwind.svc/Employees?$expand=Orders&$filter=Orders/any(c:c/CustomerID eq 'ERNSH')

其他选择是在

filter
内使用
expand

https://services.odata.org/V2/Northwind/Northwind.svc/Employees?$expand=Orders($filter=CustomerID eq 'ERNSH')
最新问题
© www.soinside.com 2019 - 2025. All rights reserved.