【发布时间】:2015-07-29 04:20:02
【问题描述】:
我有一个运行良好的 asp.net 4.5 Web Api oData v4 服务,但我今天在 $expand 中遇到了嵌套 $filters 的问题。
上面写着here
OData V4 支持 $expand 中的嵌套过滤器。下面的请求 以“Trip in US”的名称返回人员及其所有旅行。
GET serviceRoot/People?$expand=Trips($filter=Name eq 'Trip in US')
它展示了一个很好的数据示例。
Web API for oData v4 Docs here中还有一个编码示例
我有一个这样的 HTTP 调用:
serviceRoot/Languages?$expand=translations
它返回一个语言列表及其扩展翻译,我可以用这个过滤顶级列表:
serviceRoot/Languages?$expand=translations&$filter=isoLanguageShortName eq 'en'
但是,我不能用这个过滤扩展的翻译:
serviceRoot/Languages?$expand=translations($filter=languageName eq 'English')
该调用似乎与上面引用中的调用相同,并且对我的数据的影响应该与他们的相同。
有人知道我哪里出错了吗?我是否需要在我的 ASP.NET 代码中设置一些内容才能使其正常工作(比如我们需要将 MaxExpansionDepth 添加到 EnableQueryAttribute 以查询超过两个级别的深度)?
【问题讨论】:
-
非常感谢@Fabian。我有三个带有报告版本 6.1.0 的 oData 图标的库,然后是您链接到的库,我现在可以看到报告 5.4.0,我猜这是主库!您的评论刚刚为这将是漫长的一天开了个好头。再次感谢。 :-)
-
有效吗?我可以添加一个答案来关闭主题吗?
-
请做,我会将其标记为已回答。
标签: c# asp.net asp.net-web-api odata