【问题标题】:How do I query using ODATA for the existence of a relationship between two entities?如何使用 ODATA 查询两个实体之间是否存在关系?
【发布时间】:2011-07-28 16:37:45
【问题描述】:

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

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

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

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

如果无法编写关系查询,是否有这样的最佳实践来使用自定义方法扩展 ODATA 服务来测试它?

谢谢!

大卫

【问题讨论】:

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


    【解决方案1】:

    我认为您可以简单地调用类似:ODataService.svc/Persons(1)/Projects(5)。这将尝试返回 Id=5 的 Project 与 Id=2 的 Person 相关,因为在这种情况下,Persons 是实体集,ProjectsPerson 实体上的导航属性。如果关系存在,您将获得记录。如果它不存在,您会得到类似 Resource not found 之类的信息。

    【讨论】:

    • 哦,酷。我没有意识到您可以提供导航属性的键。我会试试的。
    猜你喜欢
    • 2021-05-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-04
    • 2011-11-21
    • 1970-01-01
    相关资源
    最近更新 更多