1

私は次のコードを持っています

Regex R = new Regex("my regex");
var q = from c in db.tble1
        where R.IsMatch(c.text)
        select c;

デバッグ中にqの結果でこのメッセージを見ました

メソッド 'Boolean IsMatch(System.String)' には、サポートされている SQL への変換がありません。"} System.SystemException {System.NotSupportedException}

それで、私は何を間違えましたか?

編集:メソッドにはSQLへの変換がサポートされていないことを知りましたが、
これを解決する方法

4

1 に答える 1

9

正規表現では、SQL への変換がサポートされていません。エラーはそれをすべて言います。LINQ to SQL では正規表現を使用できません。

代わりにlikeor比較を使用してみてください。substring

var q = from c in db.tble1
        where c.text.StartsWith("x") && c.text.Substring(2, 1) == "y"
        select c;

または、メモリ内の正規表現比較を実行できます。ToList()を使用する前に呼び出すことで、これを行うことができますRegex

Regex R = new Regex("my regex");
var q = from c in db.tble1.ToList()
        where R.IsMatch(c.text)
        select c;
于 2012-06-07T17:21:38.823 に答える