我有一个记录数据库,每个记录都有一个标题。我希望能够使用将被分隔为列表或数组的搜索字符串来搜索该数据库。
因此,例如,如果我使用“Book Dog”进行搜索,它将搜索标题中包含“Book”或“Dog”的所有标题。
我正在使用实体框架,我想写下我想做的最简单的方法是
string[] words;
var posts = (from p in ctx.posts
where p.title.contains(words)
select p).ToList();
我尝试使用在网上找到的 StringExtension,但我会收到以下错误“LINQ to Entities 无法识别方法 'Boolean ContainsAny(System.String, System.String[])' 方法,并且无法翻译此方法变成商店的表达方式。”
扩展名是
public static bool ContainsAny(this string str, params string[] values)
{
if (!string.IsNullOrEmpty(str) || values.Length > 0)
{
foreach (string value in values)
{
if (str.Contains(value))
return true;
}
}
return false;
}