2010-01-22 53 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字符串還是存儲過程中。

相關問題