从Linq到Sql进行选择,我希望使用通配符进行字符串搜索。到目前为止,我知道可以这样做
%token = column.EndsWith(value)
token% = column.StartsWith(value)
%token% = column.Contains(value)
我似乎找不到支持的是
to%ken
这有什么支持的吗?
Update -人们建议使用SqlMethods.Like -但是在我的用法中,这似乎不起作用,下面的代码
if (!object.Children.Any() ||
!object.Children.OrderByDescending(t => t.Version)
.First().MetaDataPairs.Any(mdp => SqlMethods.Like(mdp.Value.ToLower(), stringmatch))) continue;
当我尝试这个时,我会犯错误
错误是方法'Boolean (System.String,System.String)‘不能在客户机上使用;它只用于转换到SQL。
发布于 2017-01-18 08:45:09
在名称空间SqlMethods
中有一个like
方法,您可以使用它如下:
Where SqlMethods.Like(entity.StringProperty, "tok%en");
这只适用于Linq到Sql查询,如果您希望使用更通用的方法,我建议您使用Regex,如下所示:
.Where(entity => Regex.matches(entity.StringProperty, @"(?:tok)(\w*)(?:en)");
发布于 2017-01-18 08:46:41
2项建议:
1)使用
SqlMethods.Like
2)使用Regex类
System.Text.RegularExpressions.Regex regEx = new System.Text.RegularExpressions.Regex("token");
https://stackoverflow.com/questions/41724751
复制相似问题