我正在使用 LINQ TO ENTITY,以便根据他们的电话号码过滤人员列表。
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.
那么有没有一种方法可以使用 LINQ TO ENTITY 检查 PhoneNumber 是否包含不带特殊字符的 PhoneSearch?
我知道我可以使用 LINQ TO ENTITY 获取所有列表,然后使用 LINQ TO OBJECT 过滤它,但我试图避免这种方法。
非常感谢任何解决方案或提示