Using contains() in LINQ to SQL

Looking at the other attempts saddens me 🙁

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;
}

Assumptions:

  • partName looks like: “ABC 123 XYZ”

  • query is { “ABC”, “123”, “XY” }

Leave a Comment