【问题标题】:Filtering odata results based on a value contained in a navigation property根据导航属性中包含的值过滤 odata 结果
【发布时间】:2012-09-11 21:18:18
【问题描述】:

使用http://services.odata.org/Northwind/Northwind.svc/ 提供的 Northwind OData 提要,如何获取分配给 TerritoryID = 19713 的员工列表?

我可以使用以下 LINQ 查询获取员工和地区,但如果没有 All/Any 方法,我不知道该怎么做。

from e in Employees.Expand("Territories") select e

我假设这很简单,我只是没有只见树木不见森林......所以,提前感谢您的帮助。

【问题讨论】:

  • 网址无效...子域不存在
  • 您可能想再试一次...该 URL 对我来说很好。
  • 仍然无法为我工作,我无法解析主机名。这很奇怪......
  • @ThomasLevesque 这里也没有问题。防火墙?
  • @GertArnold,不……也许我的 ISP 有问题

标签: linq entity-framework linq-to-entities wcf-data-services odata


【解决方案1】:

在这种情况下,你可以把它转过来

Territories.Expand("Employees").Where (t => t.TerritoryID == "19713")

但通常,linq to odata 的操作数子集非常有限。 AnyContains 之类的方法,在类似的查询中很有用,例如不支持 linq 到实体。

【讨论】:

  • 他们刚刚添加了对 OData v3 和 WCF 数据服务 5 的任何/全部支持。请参阅 msdn.microsoft.com/en-us/library/…。不幸的是,Northwind svc 仍然是第 2 版,所以我认为你的方式是唯一可行的方法。
  • @JasonFreitas 很高兴知道这一点!
  • 那里也有 V3 Northwind 服务。例如:services.odata.org/V3/Northwind/Northwind.svc/…gt 20)
  • 感谢大家。我下载了最新的 WCF 数据服务,在对服务和客户端进行了必要的更新后,我能够使用 Any/All 方法完成我需要的工作。
猜你喜欢
  • 2018-10-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多