2014-09-20 85 views
1

我有一个PoC服务类似odata.org's demo service
因此,在他们的演示中,他们有一个Person基类型和Customer和Employee派生类型。OData中的实体继承

我想要查询派生类型Employee的所有(或过滤)实例。
由于规范说“实体可以是任何给定时间点上设置的最多一个实体的成员,实体集提供入口点到数据模型中。”
员工的切入点是通过人员实体集,迄今为止非常好。
但我只是无法找到一种方式来过滤@ odata.type。

我已经试过许多查询:

/[email protected] 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状态代码。

回答

2

尝试为以下URI:

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

的相关规范: Addressing Derived Types

+0

+1你说得对,我读到它,并试图在我的演示,并没有工作,忘了在odata.org演示中使用它。但确实是有效的。但是你知道为什么我在演示中尝试使用404吗?我没有什么特别的。 – gdoron 2014-09-23 09:04:44

+0

@gdoron是否使用web api编写OData服务? V3或V4? – Maya 2014-09-24 08:34:07

+0

我认为这个问题可能在我的实体框架代码第一层。我将在下周再检查一次,我将再次到办公室。谢谢! – gdoron 2014-09-24 08:36:49