【问题标题】:Does Asp.net Web API 2.2 OData4 support group by clause?Asp.net Web API 2.2 OData4 是否支持 group by 子句?
【发布时间】:2014-11-19 04:08:25
【问题描述】:

Asp.net Web API 2.2 OData4 是否支持聚合和 groupby 子句? 我找不到任何确凿的答案。

【问题讨论】:

  • 一个简单的答案应该是否定的。但是您能否提供更详细的要求,以便可能有一些替代方案。
  • 为了清楚起见,OData V4 有 http://docs.oasis-open.org/odata/odata-data-aggregation-ext/v4.0/odata-data-aggregation-ext- v4.0.pdf 聚合规范,未来会支持。
  • 感谢@QianLi:我的要求很简单,能够执行聚合函数(sum、min 等)并对它们强加 group by 子句。我只是想开箱即用(来自网络 api)。
  • 另外,还有什么替代品?

标签: asp.net asp.net-web-api odata aggregate asp.net-web-api2


【解决方案1】:

另一种方法是使用AdaptiveLINQ 组件提供的QueryByCube linq 扩展方法来实现您的服务。

例如:

[EnableQuery]
public IQueryable<SalesCubeItem> Get()
{
     return DataContext.OrderDetails.QueryByCube(new SalesCubeDefinition());
}

SalesCubeDefinition 定义:

  • 2 个维度:ProductNameCustomerName
  • 2 个措施:SalesQuantity

您可以像这样使用 OData 协议查询每位客户的销售额

http://.../salesAnalysis?$select=CustomerName,Sales

按产品销售的数量

http://.../salesAnalysis?$select=ProductName,Quantity

当然,您可以将其与其他 OData 运算符($filter、$orderby...)结合使用

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

【讨论】:

  • 谢谢,对我来说,这是整个实体框架的明显遗漏,我开始切换到 Azure 搜索 API 解决方案以获取此类包含方面的信息,但这满足了我当前的大部分 API要求。但是啊,作为许可解决方案,这对我的团队来说很难卖
猜你喜欢
  • 2012-08-10
  • 1970-01-01
  • 2021-11-29
  • 1970-01-01
  • 2022-01-13
  • 2012-05-23
  • 2012-08-03
  • 1970-01-01
  • 2012-04-20
相关资源
最近更新 更多