我无法让groupby与top一起使用,而这应该是最简单的事情。 我正在使用OData获取数据,并能够通过下面的查询获取输出
https://localhost:6523/api/OData/AssetUsage/?$ apply = groupby((assetId,BIAsset / name),aggregate(以sum为totalInteractions的交互,以sum为totalUniqueInteractions的uniqueInteractions))&$ orderBy = totalInteractions asc
但是,当我尝试在上面生成的输出上应用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; }
}
答案 0 :(得分:0)
我正在使用EnableLowerCamelCase(),因此在编写查询时需要使用精确的大小写。 但是,在将来的更新中,此问题将得到解决。 请参阅下面的URL以获取进一步的更新。 https://github.com/OData/WebApi/issues/1659