我正在使用最新的Microsoft.AspNetCore.OData(7.0.0-beta2)。我正在尝试使用ODataQueryOptions <>从具有驼峰式案例属性名称的OData查询中获取OData参数。
我使用builder.EnableLowerCamelCase();
Pascal案例属性名称调用控制器端点时,一切都工作正常。例如:
URL:/myentities?$orderby=**Id**
控制器动作:public async Task<IEnumerable<MyEntity>> Get(ODataQueryOptions<MyEntity> options)
但是,一旦我使用驼峰式案例名称(/myentities?$orderby=**id**
),OData就会抛出一个验证异常:
ODataException:在类型'MyNamespace.MyEntity'上找不到名为'id'的属性。Microsoft.OData.UriParser.EndPathBinder.GeneratePropertyAccessQueryForOpenType(EndPathToken endPathToken,SingleValueNode parentNode)Microsoft.OData.UriParser.EndPathBinder.BindEndPath(EndPathToken endPathToken)Microsoft.OData.UriParser.MetadataBinder.Bind(QueryToken)Microsoft.OData.UriParinder ProcessSingleOrderBy(BindingState状态,OrderByClause thenBy,OrderByToken orderByToken)Microsoft.OData.UriParser.OrderByBinder.BindOrderBy(BindingState状态,IEnumerable orderByTokens)Microsoft.OData.UriParser.ODataQueryOptionParser.ParseOrderByI数据配置(string) UriParser.ODataQueryOptionParser。
我了解这builder.EnableLowerCamelCase();
只是在序列化OData实体“响应”时使用Camel大小写,但是如何使用Camel大小写名称和ODataQueryOptions <>使用asp.net核心正确创建OData API?我是否必须实现自定义活页夹,或者有本地方法吗?
我在这里发现了一个可能与我的问题有关的问题:https : //github.com/OData/WebApi/issues/889
有没有人设法做到这一点而没有任何黑客?
哆啦的时光机
相关分类