ASP.NET 核心 6 ODATA 计数未返回值
ASP.NET Core 6 ODATA Count not returning a value
我最近升级到 .NET 6 Core
预览版,但我遇到了 ODATA 的一些问题。在 .NET Core 3.1
中使用的功能不再有效。
这是我的启动代码段:
我也相信 EnableQueryFeatures()
默认情况下允许 Count
。
services.AddControllers().AddNewtonsoftJson(options =>
{
options.SerializerSettings.ContractResolver = new DefaultContractResolver();
}).AddOData(opt => opt
.EnableQueryFeatures()
.AddRouteComponents("odata", GetEdmModel()
);
我有以下操作方法,调用时未返回计数
到前端。
pageResult保存了一个计数值,但是没有返回给前端,
当我使用 Chrome DevTools 检查结果时。
[Route("odata/Tasks")]
public PageResult<TaskModel> AjaxListOData([FromQuery]ODataQueryOptions queryOptions)
{
var result = queryOptions.ApplyTo(dataContext.Tasks) as IEnumerable<TaskModel>;
var pageResult = new PageResult<TaskModel>(
result,
null,
count: Request.ODataFeature().TotalCount);
return pageResult;
}
我通过继承 ODataController
而不是从 ODataController
解决了这个问题
Controller
.
我最近升级到 .NET 6 Core
预览版,但我遇到了 ODATA 的一些问题。在 .NET Core 3.1
中使用的功能不再有效。
这是我的启动代码段:
我也相信 EnableQueryFeatures()
默认情况下允许 Count
。
services.AddControllers().AddNewtonsoftJson(options =>
{
options.SerializerSettings.ContractResolver = new DefaultContractResolver();
}).AddOData(opt => opt
.EnableQueryFeatures()
.AddRouteComponents("odata", GetEdmModel()
);
我有以下操作方法,调用时未返回计数 到前端。
pageResult保存了一个计数值,但是没有返回给前端, 当我使用 Chrome DevTools 检查结果时。
[Route("odata/Tasks")]
public PageResult<TaskModel> AjaxListOData([FromQuery]ODataQueryOptions queryOptions)
{
var result = queryOptions.ApplyTo(dataContext.Tasks) as IEnumerable<TaskModel>;
var pageResult = new PageResult<TaskModel>(
result,
null,
count: Request.ODataFeature().TotalCount);
return pageResult;
}
我通过继承 ODataController
而不是从 ODataController
解决了这个问题
Controller
.