OData WebAPI,可在内存中查询和区分大小写



我有一个问题与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()只是一个变通方法,所以它不是解决问题的方法

Odata不支持您的请求。

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

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

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

编辑:与示例WS一起工作。

最新更新