【问题标题】:OData WebAPI, in-memory queryable and case-sensitivityOData WebAPI,内存可查询和区分大小写
【发布时间】:2015-08-11 09:18:07
【问题描述】:

我在使用 OData WebAPI 并查询 EnumerableQuery(我在其上调用 .AsQueryable() 的列表)时遇到问题。我有一个实体集,一个带有 Get 方法的控制器,它返回 IQueryable。当我查询实体集并使用此 $filter

$filter=SomeStringProp eq 'SomeValue'

我只得到SomeStringProp 等于'SomeValue' 的字母和大小写的实体。我想以某种方式强制 OData 对所有字符串使用不区分大小写的比较器 - 即使是这样的函数调用

$filter=contains(SomeStringProp, 'apple')

我需要 OData 来返回 SomeStringProp 等于 'APPLE''PineApple''AppleSauce' 的实体

一些附加信息:

  • 数据库与此无关;如前所述,该集合在内存中
  • 在 OData 查询中使用 tolower() 只是一种解决方法,因此不能解决问题

【问题讨论】:

    标签: asp.net-web-api case-sensitive asp.net-web-api-odata asqueryable


    【解决方案1】:

    Odata 不支持您提出的问题。

    • 不区分大小写的推荐方法是使用tolower (or toupper)

    • contains 关键字已经是 odata v4 的一部分,并在 Web API 中实现。

    将它们结合起来,你就完成了:)

    编辑:与sample WS 一起工作就好了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-04-18
      • 2014-12-10
      • 2021-07-31
      • 2013-04-25
      • 1970-01-01
      • 2014-09-13
      • 1970-01-01
      相关资源
      最近更新 更多