如何使用Asp.net,Web API 2和OData v4进行收集计数

时间:2016-01-07 13:06:56

标签: collections count odata

我想根据使用Asp.net,web api2和OData v4的收集计数来订购结果。

我的网址是:url/odata/groupeclients?$expand=Client&$orderby=Client/$count

我收到此错误:

  

“URI中指定的查询无效.a的父值   属性'$ count'的属性访问不是单个值。属性   访问只能应用于单个值。“

Web API OData是否支持此功能?如果没有,是否有其他解决方案?

此致 Hayfa

1 个答案:

答案 0 :(得分:0)

目前不支持;那是open issue

作为一种解决方法,您可以定义绑定到groupeclients的OData函数,该函数显式执行扩展和排序。类似的东西:

[HttpGet]
public IHttpActionResult OrderByClientCount()
{
    return this.Ok(data.Include(e => e.Client).OrderBy(e => e.Client.Count));
}

请注意,此代码未经测试,如果您的IQueryable数据源不支持Include(或其等效项),则可能无法执行此操作。