在LINQ to SQL中使用contains()

我正在尝试使用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;

}

假设:

  • partName看起来像:“ ABC 123 XYZ”

  • 查询为{“ ABC”,“ 123”,“ XY”}

以上是 在LINQ to SQL中使用contains() 的全部内容, 来源链接: utcz.com/qa/429097.html

回到顶部