電話番号に基づいて連絡先を取得したいのですが、Ms Dynamics では、電話番号は 123 45 678、12 34 56 78、0112345678、01 12345678 などのあらゆる種類の形式で保存されています。
そのため、比較を行う前にスペースを削除する必要があります。文字列で Replace メソッドを使用しようとしましたが、実行時に Illegal method エラーが発生しました。
本当にすべての連絡先を取得して、比較のために別のループを実行する必要がありますか? または、クエリ内の文字列を "クリーン" にする方法はありますか?
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' 条件が無効です。エンティティ メンバーが無効なプロパティまたはメソッドを呼び出しています。