【问题标题】:Entities inheritance in ODataOData 中的实体继承
【发布时间】:2014-09-20 22:28:28
【问题描述】:

我有一个类似odata.org's demo service的PoC服务
所以在他们的演示中,他们有一个 Person 基本类型以及 Customer 和 Employee 派生类型。

我想查询派生类型 Employee 的所有(或过滤的)实例。
由于规范说“一个实体在任何给定时间点最多可以是一个实体集的成员。实体集提供进入数据模型的入口点。”
员工的入口点是通过 Persons EntitySet,到目前为止一切顺利。
但我只是找不到通过@odata.type 过滤的方法。

我尝试了很多查询,例如:

/Persons?$filter=@odata.type eq ODataDemo.Employee
/Persons?$filter=odata.type eq ODataDemo.Employee
/Persons?$filter=type eq ODataDemo.Employee
...
(根是:http://services.odata.org/V4/OData/(S(eq1ncar1ktn55khwjrukic3c))/OData.svc/Persons

但是没有返回 200 OK 状态码。

【问题讨论】:

    标签: c# .net asp.net-web-api odata


    【解决方案1】:

    尝试如下Uri:

    http://services.odata.org/V4/OData/(S(eq1ncar1ktn55khwjrukic3c))/OData.svc/Persons/ODataDemo.Employee
    

    相关规范: Addressing Derived Types

    【讨论】:

    • +1 你说得对,我读过它并在我的演示中尝试过,但它不起作用,忘记在 odata.org 演示中使用它。但它确实有效。但是你知道为什么在我的演示中尝试它时会得到 404 吗?我没有什么特别的。
    • @gdoron 你在用web api 写OData 服务吗? V3 还是 V4?
    • 我认为问题可能出在我的实体框架代码第一层。下周我会再次在办公室时检查它。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-25
    • 1970-01-01
    相关资源
    最近更新 更多