我有一个问题与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一起工作。