如何使用web api odata获取子记录的总和?

如何使用web api odata获取子记录的总和?,odata,asp.net-web-api,Odata,Asp.net Web Api,如何返回web api odata中OrderItems价格(ItemTotalPrice)的总和 web api odata似乎不支持$apply,如下所述: 我有一个web api odata查询,如: http://localhost:29446/odata/OrderItems 返回以下json: { "odata.metadata": "http://localhost:29446/odata/$metadata#OrderItems", "value": [{ "O

如何返回web api odata中OrderItems价格(ItemTotalPrice)的总和

web api odata似乎不支持$apply,如下所述:

我有一个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.

我将OData v4与Web API 2.2一起使用,但OData v4的Web API 2.2中尚未实现数据聚合扩展。对于.NET OData库的Github repo上提供的ODataLib级实现有一个请求:但尚未合并到主分支中。

解决方案是使用
.QueryByCube
LINQ操作符()实现WebAPI控件

免责声明:我是AdaptiveLINQ开发人员