如何使用ODATA查询两个实体之间是否存在关系?

时间:2011-04-03 16:03:52

标签: jquery entity-framework odata wcf-data-services

有没有办法编写ODATA查询(即使用ODATA URL)来测试两个实体实例之间是否存在关系?

想象一下,我在ODATA服务中有两种实体类型:Person和Project。想象一下,我已经定义了它们之间的多对多关系(类似于Person拥有项目)。我有每个人和项目的主键(ID),并想知道该人是否拥有该项目。

我可以弄清楚,如果有一个人,如何获得该人拥有的所有项目,但在一般情况下,这将返回比我想要的更多数据(并且在其他类似场景中存在性能问题)。我可以以某种方式查询关系吗?

我的服务器在ASP.NET上使用WCF和Entity Framework 4.0。我的客户端是在浏览器中运行的HTML和jquery。

如果无法编写关系查询,是否有最佳实践可以使用自定义方法扩展ODATA服务以进行测试?

谢谢!

大卫

1 个答案:

答案 0 :(得分:1)

我认为你可以简单地称呼:ODataService.svc/Persons(1)/Projects(5)。这将尝试返回Project,其中Id = 5与Person相关,Id = 2,因为在这种情况下Persons是实体集,Projects是导航属性Person实体。如果存在关系,您将获得记录。如果它不存在,您将获得类似未找到资源的内容。