Asp.net web api OData V4-展开和选项(过滤器、顶部等)

Asp.net web api OData V4-展开和选项(过滤器、顶部等),asp.net-web-api,odata,wcf-data-services,Asp.net Web Api,Odata,Wcf Data Services,我将ODataV4与ASP WebApi一起使用。我会像OData的新版本一样过滤一个扩展集合(-示例90),但在我的例子中,过滤选项没有效果 我也试着用Nortwhind服务和TripPin服务做同样的事情。它适用于TriPin服务,但不适用于Northwind服务 这里是我使用的请求: 我的服务:api/odata/Customers(19037)?$expand=订单($filter=id+eq+1796)-->不起作用 北风服务:?$expand=订单($filter=OrderID+e

我将ODataV4与ASP WebApi一起使用。我会像OData的新版本一样过滤一个扩展集合(-示例90),但在我的例子中,过滤选项没有效果

我也试着用Nortwhind服务和TripPin服务做同样的事情。它适用于TriPin服务,但不适用于Northwind服务

这里是我使用的请求:

我的服务:api/odata/Customers(19037)?$expand=订单($filter=id+eq+1796)-->不起作用

北风服务:?$expand=订单($filter=OrderID+eq+10643)-->不工作

TripPin服务:?$expand=Trips($filter=TripId+eq+1001)-->确实有效


谢谢你的帮助。

我复制了这个问题,发现$expand中的$select运行良好。我认为这是一个缺陷,并为此打开了一个bug:。

这是我们目前不支持的功能

根本原因是在转换$expand时忽略了内联$filter

选中SelectExpandBinder.cs的“GetPropertiesToExpandInQuery”方法:

仅返回
expandItem.SelectAndExpand
,而忽略其他选项

因此,目前只有$select和$expand在$expand中起作用

我之前已经调查过如何修复,但由于问题未获得批准,
请投票表决金福公司为吸引领导团队更多关注而公开的问题。

只是为了澄清一下。Northwind服务使用WCF数据服务实现,TripPin直接使用ODL实现。在某些情况下,使用运营商
$expand
可以绕过OData在聚合方面的限制。对于这种需要,您可以使用my product,它允许通过标准OData运算符将聚合查询公开为
$select
$filter
。问题已经存在。谢谢赵金福的帮助。