次のエラーが表示されますが、ステートメントの書き換え方法がわかりません。 アイデアエンティティフレームワーク - 文字列変換エラー
エラー:
LINQ to Entities does not recognize the method 'System.String Convert(System.String)' method, and this method cannot be translated into a store expression
コード:
public Client FindClientByMobile(string mobile, string accountId)
{
Client client = RepositorySet.Include("Account").FirstOrDefault(c => c.AccountId == accountId && !c.IsDeleted
&& ((Convert(c.TelephoneHome) == mobile) || (Convert(c.TelephoneMobile) == mobile) || (Convert(c.TelephoneWork) == mobile)));
return client;
}
public static string Convert(string mobile)
{
var filterNumber = from letter in mobile
where char.IsDigit(letter)
select letter;
StringBuilder number = new StringBuilder();
number.Append(filterNumber.ToArray());
return number.ToString();
}
このエラーは、Linqが式をSqlステートメントに変換する必要があることを意味します。カスタムの 'Convert'メソッドは、データベースサーバにも存在するものではなく、C#コードなので翻訳できません。 – Igor
こんにちは、ありがとう、しかし、私はすでに問題を述べて、私は尋ねたが、私の声明を書き直す方法はわからない? –
電話番号が文字列に入っています –