Odata V4按Top进行分组并跳过不起作用

时间:2018-10-26 22:07:25

标签: group-by odata aggregation odata-v4 microsoft-odata

我无法让groupby与top一起使用,而这应该是最简单的事情。 我正在使用OData获取数据,并能够通过下面的查询获取输出

https://localhost:6523/api/OData/AssetUsage/?$ apply = groupby((assetId,BIAsset / name),aggregate(以sum为totalInteractions的交互,以sum为totalUniqueInteractions的uniqueInteractions))&$ orderBy = totalInteractions asc

Output of the above query

但是,当我尝试在上面生成的输出上应用skip或top时,出现以下错误

https://localhost:6523/api/OData/AssetUsage/?$ apply = groupby((assetId,BIAsset / name),aggregate(以sum为totalInteractions的交互,以sum为totalUniqueInteractions的uniqueInteractions))&$ orderBy = totalInteractions asc&$ top = 1

错误-

  • message“:”在URI中指定的查询无效。在类型'Portal.Models.Entities.AssetUsage'上找不到名为'BIAsset'的属性。”,

  • “内部错误”:

    -“ message”:“在类型'Portal.Models.Entities.AssetUsage'上找不到名为'Asset'的属性。”,

    -“类型”:“ Microsoft.OData.ODataException”,

实体类结构

public class AssetUsage
{
    public int Id { get; set; }
    [ForeignKey("BIAsset")]
    public int? AssetId { get; set; }
    public int YearMonthId { get; set; }
    public int Interactions { get; set; }
    public int UniqueInteractions { get; set; }
    public DateTimeOffset Recency { get; set; }
    public virtual BIAsset BIAsset { get; set; }

}

1 个答案:

答案 0 :(得分:0)

我正在使用EnableLowerCamelCase(),因此在编写查询时需要使用精确的大小写。 但是,在将来的更新中,此问题将得到解决。 请参阅下面的URL以获取进一步的更新。   https://github.com/OData/WebApi/issues/1659