【发布时间】:2015-01-23 21:45:52
【问题描述】:
如何在 web api odata 中返回 OrderItems 价格的总和 (ItemTotalPrice)?
看起来 web api odata 不支持 $apply,如下所述:http://docs.oasis-open.org/odata/odata-data-aggregation-ext/v4.0/cs01/odata-data-aggregation-ext-v4.0-cs01.html#_Aggregation_Methods_1
我有一个 web api odata 查询,例如:
http://localhost:29446/odata/OrderItems
返回以下 json:
{
"odata.metadata": "http://localhost:29446/odata/$metadata#OrderItems",
"value": [{
"OrderItemID": 17,
"ItemDescription": "test",
"ItemQty": 1,
"ItemUnitPrice": "1.10",
"ItemTaxGroup": 1,
"ItemTotalTax": "0.10",
"ItemTotalPrice": "1.22",
"ItemSubProgram": 1,
"ItemAccount": 1,
"ItemActualCost": "1.22",
"OrderID": 3
}, {
"OrderItemID": 18,
"ItemDescription": "test",
"ItemQty": 1,
"ItemUnitPrice": "1.10",
"ItemTaxGroup": 1,
"ItemTotalTax": "0.10",
"ItemTotalPrice": "1.10",
"ItemSubProgram": 1,
"ItemAccount": 1,
"ItemActualCost": "1.00",
"OrderID": 3
}, {
"OrderItemID": 19,
"ItemDescription": "test",
"ItemQty": 1,
"ItemUnitPrice": "1.10",
"ItemTaxGroup": 1,
"ItemTotalTax": "0.10",
"ItemTotalPrice": "1.10",
"ItemSubProgram": 1,
"ItemAccount": 1,
"ItemActualCost": "1.00",
"OrderID": 3
}, {
"OrderItemID": 20,
"ItemDescription": "test",
"ItemQty": 1,
"ItemUnitPrice": "1.10",
"ItemTaxGroup": 1,
"ItemTotalTax": "0.10",
"ItemTotalPrice": "1.10",
"ItemSubProgram": 1,
"ItemAccount": 1,
"ItemActualCost": "1.00",
"OrderID": 3
}, {
"OrderItemID": 21,
"ItemDescription": "test",
"ItemQty": 1,
"ItemUnitPrice": "1.10",
"ItemTaxGroup": 1,
"ItemTotalTax": "0.10",
"ItemTotalPrice": "1.10",
"ItemSubProgram": 1,
"ItemAccount": 1,
"ItemActualCost": "1.00",
"OrderID": 3
}]
}
我认为以下可能有效:
http://localhost:29446/odata/OrderItems?$apply=aggregate(ItemTotalPrice with sum as Total)
但我收到以下错误:
The query parameter '$apply' is not supported.
我正在使用带有 Web API 2.2 的 OData v4
【问题讨论】:
标签: odata asp.net-web-api