【问题标题】:oData case insensitive filter containso数据不区分大小写的过滤器包含
【发布时间】:2020-03-03 23:34:26
【问题描述】:

.Net Core 2.2 中是否有设置/配置,我们可以像这样对后端进行 oData 查询并且它会忽略这种情况?在下面的示例中,我希望所有带有 FORD 和 Ford 品牌的汽车都出现在搜索结果中

https://localhost/api/cars?$filter=contains(Brand,'FoRd')

我知道您可以在 URL 中使用 toLower,但我正在查看后端中的设置

【问题讨论】:

  • 你可以检查这个article,但在我用Microsoft.AspNetCore.OData verion 7.2.2 进行的测试中,它默认不区分大小写。不知道是什么原因。
  • 我刚刚尝试使用 7.2.2 版本,并且在“过滤器包含”操作中得到了相同的区分大小写的行为

标签: .net asp.net-core odata


【解决方案1】:

感谢 Nan Yu 的评论,我认为该示例不区分大小写的原因是,而不是使用如下表达式:

contains(Name,'Dom')

他们使用:

contains(tolower(Name),'dom')

请注意,字段名称(在本例中为 Name)以 OData 的函数调用 toLower() 为前缀,并且字符串 'Dom' 已手动降低为 'dom'

【讨论】:

  • 在我的项目中,我使用了这样的过滤器:https://localhost/api/cars?$filter=contains(tolower(Brand),tolower('FoRd'))
猜你喜欢
  • 1970-01-01
  • 2013-08-07
  • 2012-02-18
  • 1970-01-01
  • 1970-01-01
  • 2018-07-10
  • 2023-04-02
  • 1970-01-01
相关资源
最近更新 更多