【问题标题】:OData V3: how to query derived type when it is stored in a parent table?OData V3:派生类型存储在父表中时如何查询?
【发布时间】:2020-12-02 21:04:55
【问题描述】:

我有以下类结构:

abstract class Person {}
class Employee : Person {}
class Customer : Person {}

我使用一些 ORMapper(在我的例子中是 XPO)将数据存储在数据库中,以这种方式将 Employee 和 Customer 类型存储在基本的“Person”数据库表中。

然后,我使用 DevExpress 的 DevExpress Odata 提供程序创建了一个 OData V3 Web 服务(他们声明它提供了完整的 odata-v3 功能)。所以可能只是与 OData 相关的问题。

现在,由于我的派生类型存储在父表中,因此在 odata Web 服务项目中,相应的类型不会自动生成。所以我无法使用“isof”函数来查询它们(或者我遗漏了一些东西):

http://localhost:51451/ODataService1.svc/Person?$filter=isof('ODataService1.TestOdata.Employee')&$format=json

如果它存储在父表中,我应该如何只查询所选派生类型(例如员工)的对象?

任何线索可能会有所帮助?

【问题讨论】:

    标签: c# odata


    【解决方案1】:

    【讨论】:

    • 谢谢,但后来我得到“请求 URI 无效。由于段 'Person' 指的是一个集合,所以这必须是请求 URI 中的最后一个段。所有中间段必须引用单一资源。” - 我认为的原因是 Employee 类不是在我的 odata 项目中自动生成的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-10-14
    • 2016-10-03
    • 2016-07-03
    相关资源
    最近更新 更多