有没有办法编写ODATA查询(即使用ODATA URL)来测试两个实体实例之间是否存在关系?
想象一下,我在ODATA服务中有两种实体类型:Person和Project。想象一下,我已经定义了它们之间的多对多关系(类似于Person拥有项目)。我有每个人和项目的主键(ID),并想知道该人是否拥有该项目。
我可以弄清楚,如果有一个人,如何获得该人拥有的所有项目,但在一般情况下,这将返回比我想要的更多数据(并且在其他类似场景中存在性能问题)。我可以以某种方式查询关系吗?
我的服务器在ASP.NET上使用WCF和Entity Framework 4.0。我的客户端是在浏览器中运行的HTML和jquery。
如果无法编写关系查询,是否有最佳实践可以使用自定义方法扩展ODATA服务以进行测试?
谢谢!
大卫
答案 0 :(得分:1)
我认为你可以简单地称呼:ODataService.svc/Persons(1)/Projects(5)
。这将尝试返回Project
,其中Id = 5与Person
相关,Id = 2,因为在这种情况下Persons
是实体集,Projects
是导航属性Person
实体。如果存在关系,您将获得记录。如果它不存在,您将获得类似未找到资源的内容。