【发布时间】:2018-08-21 01:04:39
【问题描述】:
在 OData V3 中,我可以只从父/祖先实体中选择字段,如下所示: http://services.odata.org/V3/Northwind/Northwind.svc/Order_Details(OrderID=10248,ProductID=11)?&$select=产品/类别/类别名称&$expand=产品/类别
该查询仅返回 CategoryName,不包括来自 Order_Details 或 Product 的任何字段。出于性能原因,此行为对我们的应用程序非常重要。在我们不需要时选择所有字段会对查询性能产生重大影响。
似乎没有办法在 OData V4 中完成相同的操作。等效查询返回来自 Order_Details 和 Product 的所有字段 http://services.odata.org/V4/Northwind/Northwind.svc/Order_Details(OrderID=10248,ProductID=11)?$expand=Product($expand=Category($select=CategoryName))
我能得到的最接近的方法是只从每个级别中选择一个字段,这会给我们的代码带来很多复杂性,并且很难确保所有查询(未来和现有)都遵守此规则。
【问题讨论】:
标签: select odata expand odata-v4