首页 > 解决方案 > asp.net 样板 odata 计数

问题描述

我正在开发支持 odata 的 asp.net 核心样板应用程序。我正在尝试启用 $count 参数:

app.UseOData(builder =>
            {
                builder.EntitySet<Message>("Messages").EntityType.Count().Filter().OrderBy().Expand().Select().Page().Count();//.Expand().Filter().OrderBy().Page();
            });

请求是:

/odata/Messages?%24count=true&%24filter=indexof(tolower(Guid)%2C+%27a3eee6ec-d232-42f7-93cc-fd6062fb39b6%27)+gt+-1

但响应没有计数:

{
"result": [
{
"guid": "a3eee6ec-d232-42f7-93cc-fd6062fb39b6",
"id": 140
}
],
"targetUrl": null,
"success": true,
"error": null,
"unAuthorizedRequest": false,
"__abp": true
}

如何使用样板 odata 为响应添加计数?

ps

<ItemGroup>

    <PackageReference Include="Abp.AspNetCore.OData" Version="3.8.2" /> 
    <PackageReference Include="Abp.AspNetCore.SignalR" Version="3.7.2" />
    <PackageReference Include="Abp.AspNetCore" Version="3.8.2" />
    <PackageReference Include="Microsoft.AspNetCore.OData" Version="7.0.1" />    

    ... 

  </ItemGroup>

标签: c#.netasp.net-coreodataaspnetboilerplate

解决方案


为了计算结果,url 应该是:

/odata/message?$count=true

推荐阅读