OData v4.0 聚合查询(聚合查询语法)
OData v4.0 aggregate queries (aggregate query syntax)
例如,
我有一个对象模型:
Product
{
int ProductId,
string Name,
List<Sale> Sales
}
- 我想使用聚合查询来获取总销售额:
GET: Product?$apply=groupby(Name, aggregate(Sales(Amount with sum as Total))) (遵循绿洲开放标准)
--> 收到错误:UriQueryExpressionParser_CloseParenOrCommaExpected="')' 或 ',' 应位于 '{1}' 中的位置 {0}。”。位置在 Amount.
- 我将查询更改为:
GET: Product?$apply=groupby(Name, aggregate(Sales/Amount with sum as Total))
--> 工作成功!.
我的问题:
--> 当前版本的 OData Core 是否支持聚合查询语法,如我的示例“aggregate(Sales(Amount with sum as Total))”或 NOT?
请多多指教。
非常感谢
这是在 https://github.com/OData/odata.net/issues/463
跟踪的
查询
Product?$apply=groupby(Name, aggregate(Sales/Amount with sum as Total))
应该也会抛出异常,目前还不支持
一个解决方案是使用 AdaptiveLINQ component 提供的 QueryByCube
函数。
免责声明:我是 AdaptiveLINQ 开发人员
例如, 我有一个对象模型:
Product
{
int ProductId,
string Name,
List<Sale> Sales
}
- 我想使用聚合查询来获取总销售额:
GET: Product?$apply=groupby(Name, aggregate(Sales(Amount with sum as Total))) (遵循绿洲开放标准)
--> 收到错误:UriQueryExpressionParser_CloseParenOrCommaExpected="')' 或 ',' 应位于 '{1}' 中的位置 {0}。”。位置在 Amount.
- 我将查询更改为:
GET: Product?$apply=groupby(Name, aggregate(Sales/Amount with sum as Total))
--> 工作成功!.
我的问题:
--> 当前版本的 OData Core 是否支持聚合查询语法,如我的示例“aggregate(Sales(Amount with sum as Total))”或 NOT?
请多多指教。
非常感谢
这是在 https://github.com/OData/odata.net/issues/463
跟踪的查询
Product?$apply=groupby(Name, aggregate(Sales/Amount with sum as Total))
应该也会抛出异常,目前还不支持
一个解决方案是使用 AdaptiveLINQ component 提供的 QueryByCube
函数。
免责声明:我是 AdaptiveLINQ 开发人员