爲了根據用戶的電話號碼篩選人員列表,我使用了LINQ TO ENTITY。LINQ TO ENTITY:刪除「where」表達式中的特殊字符
IEnumerable<Person> personsList = (from person in repoPersons.All()
where person.PhoneNumber.Contains(PhoneSearch)
select person).ToList();
repoPersons.All()
包含從數據庫中讀取了所有的人。 PhoneSearch
是用戶輸入的搜索字詞。
的電話號碼保存在數據庫中的一個特殊格式的字符串:+1 (555) 555-6608
(作爲一個例子
但我想允許用戶搜索5555556608
不必正確格式化(我。希望他能夠搜索到的電話號碼的一部分,太像556608
,仍然可以得到結果
我試圖創建一種稱爲RemoveSpecialCharactersInPhoneNumber
,將刪除特殊字符,並返回它,使用它是這樣的:
IEnumerable<Person> personsList = (from person in repoPersons.All()
where RemoveSpecialCharactersInPhoneNumber(person.PhoneNumber).Contains(PhoneSearch)
select person).ToList();
但我得到這個錯誤:
LINQ to Entities does not recognize the method 'System.String RemoveSpecialCharactersInPhoneNumber(System.String)' method, and this method cannot be translated into a person expression.
那麼,有沒有一種方法,我可以檢查是否******中國包含PhoneSearch沒有特殊字符,使用LINQ to實體?
我知道我可以使用LINQ TO ENTITY來獲取所有列表,然後使用LINQ TO OBJECT來過濾它,但我試圖避免這種方法。
任何解決方案或暗示非常讚賞
+1不整齊,但像一個魅力 –
這將是很好,如果有可能做一個擴展方法來解決這個替換重複。那可能嗎? –