我们正在使用ADO.NET dataservices&正在构建基于URL的过滤器。 示例:/ Customers?filter = City eq'London'
我们现在需要过滤全文“标签”字段。 正在寻求:/客户?过滤器=标记为“友好”
问题: ADO.NET没有LIKE运算符。 ADO.NET似乎不喜欢FTS (它没有找到匹配 - 因为它没有通过CSV进行解析)
任何想法如何使这项工作? THX
答案 0 :(得分:1)
ADO.NET数据服务确实支持“LIKE”类型的运算符。
这样的查询:
http://localhost/EntitiesService.svc/CalEvents?$filter=indexof(Subject,'fO') ge 0
http://localhost/EntitiesService.svc/CalEvents?$filter=substringof('fox',Subject) eq true
或LINQ版本:
var result = _context.CalEvents.Where(ce => ce.Subject.Contains(searchTerm))
可能你正在寻找什么。它们使用“LIKE”运算符生成SQL查询,并在搜索项中添加“%”。所以,他们就像“喜欢”操作员。
不支持带有“包含”运算符的FTS ..我没有时间检查确定但我认为我不久前看过它。
更多信息: http://www.odata.org/developers/protocols/uri-conventions
答案 1 :(得分:0)
我本身并没有使用ADO.NET数据服务,但是,在使用全文搜索时,我发现CONTAINS运算符功能更强大。无论是在临时的sql字符串中,还是在存储过程中。