c# - 比较前删除字符串中的空格

标签 c# linq linq-to-entities dynamics-crm dynamics-crm-online

我想根据电话号码获取联系人,但在 Ms Dynamics 中,电话号码以各种格式存储,如 123 45 678、12 34 56 78、0112345678、01 12345678 等。

所以我必须在进行比较之前删除它们中的空格,我确实尝试在字符串上使用 Replace 方法,但这在运行时给了我一个非法方法错误。

我真的必须检索所有联系人并进行另一个循环进行比较,还是有办法“清理”查询中的字符串?

string phone = "12345678";
var contacts = from c in orgContext.CreateQuery<Contact>()
    join a in orgContext.CreateQuery<Account>() on c.AccountId.Id equals a.AccountId
    where (c.Telephone1.Replace(" ", "").Contains(phone) || c.MobilePhone.Replace(" ","").Contains(phone))
   select new DynamicContact
   {
     ContactId = c.ContactId,
     FirstName = c.FirstName,
     LastName = c.LastName,
     ....and more...    
   };

编辑:

这是异常消息:

无效的“where”条件。实体成员正在调用无效的属性或方法。

最佳答案

使用:

phone = phone.Replace(" ", ""); // Replaces whitespace with empty string

这与您在 linq 表达式中所做的几乎相同。

关于c# - 比较前删除字符串中的空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5992777/

相关文章:

c# - 如何将 C# 日期时间值转换为 UTC 时区

c# - AntiXSS 不会清理未封闭的 html 标签

c# - 使用 Entity Framework 优化 LINQ 查询

asp.net - Entity Framework 4 Linq non Lazy Loaded .Include(),包含当前实体的子实体的相关实体

c# - SetWinEventHook 窗口最大化事件

c# - 使用 PDFSharp 时访问 Azure Web App 中的字体时出错

linq - 如果我从 XDocument 选择节点,顺序是否始终保留?

c# - 匿名类型对象或动态

c# - 如何使用 linq 仅对一列进行分组

c# - 如何将嵌套在 linq 中的相关实体获取到实体?调查问题、子问题和选项