构建" LIKE" WEB API oData选项过滤器

时间:2014-09-19 23:41:18

标签: asp.net-web-api filter odata

我是一个oData新手,并尝试构建$ filter参数,其行为类似于" LIKE" sql语句。

让我们在名称文本框中说用户输入" ABC",这相当于" $ filter = name eq' ABC'"。

  1. 用户输入" ABC *",代码应生成"名称以' abc'"。
  2. 开头。
  3. 用户输入" * ABC",代码应生成"名称以' abc'"。
  4. 结尾。
  5. 用户输入" A * C",代码应生成"名称以' a'和名字 结束''"。
  6. 很高兴,如果它也能做到" A * B * C"或更复杂的变化,但不是要求。
  7. 现在,我可以写一个像这样的小javascript方法....(仅限伪) (如果第一个字符是==" ")? " blah startswith' ABC'" :"" +(如果最后一个字符是==" ")? " blah endwith' ABC'" :"" ...等......或者可能是一些正则表达式

    但它不优雅我不确定这是正确的方法,还有其他办法用oData处理LIKE。是否有可能通过" blah eq' * A * B * C *'"并修改Controller中的选项以强制选项生成" LIKE" ?

    注意:不要求实际的代码,只是想知道哪种方法可行...

    此致 麦克

1 个答案:

答案 0 :(得分:1)

OData被发明了#34;所以你不需要重新发明轮子......

strings functions

From the Specifications

现在这涵盖了您需要的一切:

  1. startswith(Name,'ABC')
  2. endswith(Name,'ABC')
  3. startswith(Name,'A') and endswith(Name,'C')