我一直在研究一種方法,通過OData和JavaScript爲我的實體的數字ID字段執行模糊搜索。到目前爲止,我還沒有找到我正在尋找的答案。我可以使用「Startswith」過濾器選項完美地過濾其他edm.string列,但是當我嘗試傳入任何其他非字符串類型時,我會從服務器返回類型錯誤響應。OData:通配符(開頭)過濾URL請求中的數字(ID)字段
在我控制數據庫的應用程序中,通過創建我需要的視圖並將視圖的數字類型轉換爲字符串,我成功地解決了這個問題。但是,這似乎有點矯枉過正,因此我可以創建一整套數據視圖,以便我可以允許用戶通配符搜索ID,否則OData查詢可以很好地工作。
有沒有人找到一個很好的解決方案呢?謝謝!
謝謝您的迴應!我使用自己的自定義WCF數據服務與EntityFramework和Sql Server後端。我也能夠做到你上面提到的,這將工作很好,除了我然後失去了我的內聯帳戶的選項。我需要爲我的許多應用程序顯示用戶的總體結果,而不需要再次調用回來以檢索計數。我認爲如果服務方法採用所有的常規實體查詢所做的選擇,那將是非常好的。這樣,如果你在前端建立通用數據訪問組件,你也可以使用它。 – muck41 2012-07-23 17:13:34
這似乎是我們應用程序的常見要求,因爲我們爲我們的內部客戶編寫業務應用程序,這些客戶通常非常有興趣直接查詢他們要查找的訂單或部件號。給他們一個模糊的搜索通常是有幫助的,因爲出ID可能很大,並且他們知道它是在「8600系列」或結果中。這些搜索通常在實時過濾組件中(密鑰開始搜索),因此在大型ID上使用此功能可以獲得一致的用戶過濾體驗 – muck41 2012-07-23 17:16:36
您仍然可以在查詢中使用$ inlinecount - 在我的情況下,該URL看起來像http://本地主機:59803/ScratchService.svc/FuzzySearch idStartsWith = '1' &$ inlinecount =所有頁?。絕對有其他系統查詢選項,你不能使用。 – 2012-07-23 20:15:13