5

Linq to DataTable を使用しています。where句でlike演算子を適用する方法。SQL の like 演算子と同じように、データを検索したいと考えています。

次のコードを検索して試してみましたが、エラーが発生しました:メソッド 'Boolean Like(System.String, System.String)' はクライアントで使用できません。SQL への変換専用です。

var details = from addresses in dt.AsEnumerable() 
    where SqlMethods.Like(prefixText, prefixText + "%") || SqlMethods.Like(prefixText, "%" + prefixText + "%")
    select (string) addresses["Details"];                      

return details.ToArray();
4

2 に答える 2

4
var details = from addresses in dt.AsEnumerable()
                where addresses.Field<string>("Details").StartsWith(prefixText)
                ||  addresses.Field<string>("Details").Contains(prefixText)
                select addresses.Field<string>("Details");
于 2010-12-16T17:47:25.993 に答える
4

あなたの最善の策は、それを正規表現として書き直して使用することかもしれません

where yourRegex.IsMatch(row.SomeValue)

または、クエリで始まるだけの場合:

where row.SomeValue.StartsWith(prefix)
于 2010-12-16T17:39:53.217 に答える