在 ASP.NET Core OData 8.2.5 上的类型“MyClass”上找不到名为“keyName”的属性

问题描述 投票:0回答:1

受影响的程序集:ASP.NET Core OData 8.2.5

我收到错误

在 ASP.NET Core OData 8.2.5 上的类型“MyClass”上找不到名为“keyName”的属性

但它在 ASP.NET Core OData 8.2.4 版本之前运行良好。

此行引发异常:

(int)oDataQueryOptions.Count?.GetEntityCount(oDataQueryOptions.Filter?.ApplyTo(myClassQuery, new ODataQuerySettings()) ?? myClassQuery)

在下面的代码片段中提到。

重现步骤

  • 创建一个类,C# Web API,如下所示。
  • 使用 URL 调用 API
    https://localhost:8080/api/requests?$format=json&$top=10&$orderby=keyName&$count=true

你会得到一个例外。

型号

public class MyClass
{
    [Key]
    public int AutoId { get; set; }
    public string KeyName { get; set; }
    public string Description { get; set; }
}

网络API:

public Task GetMyClassData(ODataQueryOptions oDataQueryOptions)
{
    var myClassQuery = dbContext.Table1
                                .GetAll()
                                .Select(t => new MyClass
                                             {
                                                 AutoId = t.Autoid,
                                                 KeyName = t.KeyName,
                                                 Description = t.Description,
                                             });

var response = new
               {
                   totalRecords = (int)oDataQueryOptions.Count?.GetEntityCount(oDataQueryOptions.Filter?.ApplyTo(myClassQuery, new ODataQuerySettings()) ?? myClassQuery),
                   records = oDataQueryOptions.ApplyTo(myClassQuery).Cast()
               };
}

请求/响应

要求:

https://localhost:8080/api/requests?$format=json&$top=10&$orderby=keyName&$count=true)

回应:

在“MyClass”类型上找不到名为“keyName”的属性

预期行为:它应该返回有效对象

应返回有效对象

c# asp.net-core .net-core odata webapi
1个回答
0
投票

根据 Microsoft.AspNetCore.OData 8.2.5 团队的说法,他们已经接受特定版本中存在错误并将得到解决。了解更多详情:BugDetails

© www.soinside.com 2019 - 2024. All rights reserved.