SQLからデータを選択するために、LINQ to Entitiesを使用しています。メソッドがLINQストア式でサポートされていません
は、ここで私は、私は特殊文字なしの比較の両側を比較するために書いたRemoveSpecialCharactersメソッドを使用しています、私の文
var employee = from p in _context.employee
select p;
employee = employee.Where(p =>
Helper.RemoveSpecialCharacters(p.IdentificationNumber).
Equals(Helper.RemoveSpecialCharacters(search.IdentificationNumber)));
var Results = employee.ToList();
です。
ここで私はエラーが発生します。 "RemoveSpecialCharacters"メソッドはLinq-> Entityではサポートされておらず、有効なストア式ではありません。
私はそれをSQLとして翻訳することはできません。しかし、LINQを使ってどのように比較するのですか?
RemoveSpecialCharacters方法
public static string RemoveSpecialCharacters(string str)
{
char[] arr = str.Where(c => (char.IsLetterOrDigit(c))).ToArray();
str = new string(arr);
return str;
}
methodNameのは、多分、SQLはそれを理解しているように、私は、LINQでこれを置くことができますどのようにLINQストアに翻訳する場合。
ところで、「var employee =(_context.employee);」(C#言語仕様バージョン5.0,7.16.2.5節の選択)では、「var employee = from _context.employee select p; 。 – Philippe
理想的には、IQueryableクエリを動作させるためにMethodCall式を作成することができます。式ツリーから 'Func'をコンパイルするときにメソッドを翻訳できません。 –
' Regex.Replace'を使用してコードをチェックしてください –