像Linq到DataTable中的运算符一样?

haa*_*nsi 5 c# linq linq-to-dataset

我正在使用Linq到DataTable.如何在where子句中应用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();
Run Code Online (Sandbox Code Playgroud)

Mar*_*ell 4

您最好的选择可能是将其重写为正则表达式并使用

where yourRegex.IsMatch(row.SomeValue)
Run Code Online (Sandbox Code Playgroud)

或者如果它只是开始查询:

where row.SomeValue.StartsWith(prefix)
Run Code Online (Sandbox Code Playgroud)