我正在使用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();
答案 0 :(得分:4)
您最好的选择可能是将其重新编写为正则表达式使用
where yourRegex.IsMatch(row.SomeValue)
或者如果只是以查询开始:
where row.SomeValue.StartsWith(prefix)
答案 1 :(得分:3)
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");
答案 2 :(得分:2)
此链接会有帮助吗?Linq to SQL like Operator