0
我是一個oData新手,並試圖構造$ filter參數,其行爲與「LIKE」sql語句相似。構建「LIKE」WEB API oData選項過濾器
讓我們說名稱文本框中的用戶輸入「ABC」,這相當於「$ filter = name eq'ABC'」。
- 用戶輸入「ABC *」,代碼應該產生「name startswith'abc'」。
- 用戶輸入「* ABC」,代碼應該產生「名字endswith'abc'」。
- 用戶輸入「A * C」,代碼應該產生「名稱startswith'a'並且名稱 以'c'結尾」。
- 不錯,如果它也可以做「A * B * C」或更復雜的變化,但不是要求。
現在,我可以寫,可能是這樣的一個小JavaScript方法......(僞只) (如果第一個字符是==「」)? 「blah startswith'ABC'」:「」 +(如果最後一個字符是==「」)? 「blah endswith'ABC'」:「」... etc..or可能是一些正則表達式
但它並不優雅我不確定這是否是正確的方法,是否有任何其他方式來處理與oData的LIKE 。是否可以通過「blah eq」* A * B * C *'「並修改控制器內的選項以強制選項生成」LIKE「?
注:不要求一個實際的代碼,只需用什麼辦法可以工作的想法...
的問候, 邁克
什麼,如果用戶輸入'* A * B * C *'? – 2014-09-19 23:44:46
是的,我想過,但我們必須考慮oData選項和LINQ的限制。我認爲「A * B * C」是現實世界商業應用中的邊緣案例,我可能會不支持它。 – 2014-09-20 01:24:55
任何人都可以解釋爲什麼這是下降到-1? – 2014-09-20 01:32:23