我正在尝试使用 linq-to-sql 在应用程序中实现非常基本的关键字搜索。我的搜索词位于一个字符串数组中,每个数组项都是一个单词,我想找到包含搜索词的行。我不介意它们是否不仅仅包含搜索词(很可能会),但所有搜索词都必须存在。
理想情况下,我想要类似于下面的代码片段的东西,但我知道这行不通。另外,我看过这个问题在这里,但该问题的作者似乎满足于以相反的方式做事(query.Contains(part.partName)
),这对我不起作用。
public IQueryable<Part> SearchForParts(string[] query)
{
return from part in db.Parts
where part.partName.Contains(query)
select part;
}
我怎样才能重写这个查询,以便它能够满足我的需要?
看看其他尝试让我感到难过:(
public IQueryable<Part> SearchForParts(string[] query)
{
var q = db.Parts.AsQueryable();
foreach (var qs in query)
{
var likestr = string.Format("%{0}%", qs);
q = q.Where(x => SqlMethods.Like(x.partName, likestr));
}
return q;
}
假设:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)