OData WebAPI,内存可查询和区分大小写
Posted
技术标签:
【中文标题】OData WebAPI,内存可查询和区分大小写【英文标题】:OData WebAPI, in-memory queryable and case-sensitivity 【发布时间】: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() 只是一种解决方法,因此不能解决问题【问题讨论】:
【参考方案1】:Odata 不支持您提出的问题。
不区分大小写的推荐方法是使用tolower (or toupper)。
contains 关键字已经是 odata v4 的一部分,并在 Web API 中实现。
将它们结合起来,你就完成了:)
编辑:与sample WS 一起工作就好了。
【讨论】:
以上是关于OData WebAPI,内存可查询和区分大小写的主要内容,如果未能解决你的问题,请参考以下文章
如何获取 OData 可查询 Web API 端点过滤器并从 DTO 对象映射它?