【发布时间】:2012-05-17 11:46:41
【问题描述】:
我使用 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 过滤它,但我试图避免这种方法。
非常感谢任何解决方案或提示
【问题讨论】:
标签: c# string linq entity-framework