Microsoft.AspNetCore.OData v8.0.2 查询字段名大小写不敏感设置失效问题
OData V8 字段名大小写不敏感配置方案
OData V8 对 Uri 解析器的注册逻辑有调整,原有配置未生效是因为使用了基类ODataUriResolver,且未处理默认驼峰命名规则的冲突,按以下步骤修改即可:
1. 修改服务注册配置
将原有OData服务注册代码替换为以下内容:
services.AddControllers() .AddOData(opt => { opt.EnableQueryFeatures(); opt.AddRouteComponents("", model0, sv => { // 使用UnqualifiedODataUriResolver替代基类ODataUriResolver sv.AddSingleton<ODataUriResolver>(_ => new UnqualifiedODataUriResolver { EnableCaseInsensitive = true }); }); // 关闭默认驼峰命名转换,避免大小写匹配冲突 opt.RouteOptions.EnableLowerCamelCase = false; });
2. 检查EDM模型构建逻辑
如果你的EDM模型构建代码中调用了EnableLowerCamelCase()方法,请删除该行配置:
var modelBuilder = new ODataConventionModelBuilder(); // modelBuilder.EnableLowerCamelCase(); // 删除该行,否则会强制属性名驼峰化,导致大小写匹配失效 // 其余实体配置代码不变 var model0 = modelBuilder.GetEdmModel();
3. 验证配置
修改完成后分别请求以下两个地址,均可正常返回结果:
url/$filter=MyField eq 1url/$filter=myfield eq 1
内容的提问来源于stack exchange,提问作者Sameh
相关产品推荐
相关产品推荐

