2010-01-22 71 views
0

我们正在使用ADO.NET dataservices &正在构建基于URL的过滤器。 示例:/ Customers?filter = City eq'London'如何使用全文搜索(FTS)字段筛选ADO.NET数据?

我们现在需要在全文'标签'字段上进行过滤。 WAS HOPING for:/ Customers?filter = Tag like'Friendly'

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

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

回答

1

ADO.NET Data Services确实支持“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

0

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