2017-05-26 6 views
0

次のコードがあり、正規表現がサポートされていないというエラーが表示されます。私はAsyncがそれをSQLのステートメントに変換していると思って失敗していると思いますか?Async Entity FrameworkでRegex Expressionを使用する方法

Regex emailRegEx = new Regex(@"^.*" + emailDomain + "$"); 

var peoplesWithEmail = await personService.Query().Where(p => p.Emails.Any(e => emailRegEx.Match(e.EmailAddress).Success == true)).ToListAsync(); 

エラーメッセージ

"ExceptionMessage":「エンティティへのLINQのメソッド 'System.Text.RegularExpressions.Matchマッチ(可能System.String)' メソッドを認識しない、そしてこの方法はできません店舗の表現に変換することができます。

このため、どのような回避策がありますか? Entity Frameworkのは、LINQ to SQLで翻訳されているので

答えて

-1

私はあなたがはいRegex.IsMatch

 var peoplesWithEmail = await personService.Query().Where(p => p.Emails.Any(e => emailRegEx.IsMatch(e.EmailAddress))).ToListAsync(); 
1

を使用しなければならないと思いますが、それが失敗しています。 SQLには、しかし、あなたはString.StartsWithString.EndsWithString.Contains

var peoplesWithEmail = await personService.Query() 
     .Where(p => p.Emails.Any(e => e.EndsWith(emailDomain)).ToListAsync(); 
を使用することができます

正規表現は、LINQでサポートされていません

関連する問題