我有一个类似的 PoC 服务 odata.org's demo service
因此,在他们的演示中,他们有一个 Person 基本类型以及 Customer 和 Employee 派生类型。
我想查询派生类型 Employee 的所有(或过滤后)实例。
由于规范规定“一个实体在任何给定时间点最多可以是一个实体集的成员。实体集提供数据模型的入口点。”
Employees 的入口点是通过 Persons EntitySet,到目前为止一切顺利。
但我只是找不到通过@odata.type 进行过滤的方法。
我尝试过很多查询,例如:
/<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="cd9da8bfbea2a3bef2e9aba4a1b9a8bff08da2a9acb9ace3b9b4bda8" rel="noreferrer noopener nofollow">[email protected]</a> 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 状态代码。
最佳答案
尝试如下 Uri:
http://services.odata.org/V4/OData/(S(eq1ncar1ktn55khwjrukic3c))/OData.svc/Persons/ODataDemo.Employee
相关规范: Addressing Derived Types
关于c# - OData 中的实体继承,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25953895/