0

我们正在使用 ADO.NET 数据服务并构建基于 URL 的过滤器。示例:/Customers?filter=City eq 'London'

我们现在需要过滤全文“标签”字段。WAS HOPING FOR: /Customers?filter=标记为“友好”

问题:ADO.NET 没有 LIKE 运算符。ADO.NET 似乎不喜欢 FTS(它没有找到匹配项 - 因为它没有通过 CSV 解析)

任何想法如何使这项工作?谢谢

4

2 回答 2

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 查询,并将“%”添加到搜索词中。因此,它们的行为类似于“LIKE”运算符。

例如,带有“包含”运算符的 FTS .. 不受支持,我没有时间确定,但我想我不久前就看到了。

更多信息: http ://www.odata.org/developers/protocols/uri-conventions

于 2011-04-13T04:59:56.963 回答
0

我本身没有使用过 ADO.NET 数据服务,但是,在使用全文搜索时,我发现 CONTAINS 运算符的功能要强大得多。无论是在 ad hoc sql 字符串中,还是在存储过程中。

于 2010-01-22T14:10:24.090 回答