Вам необходимо создать выражение для представления составного предиката OR, а затем передать его в Where:
var data = from d in db.xxxx select d;
Expression<Func<Data, bool>> predicate = null;
foreach (var pattern in user_stuff)
{
Expression<Func<Data, bool>> newPredicate = d => SqlMethods.Like(d..item, pattern));
if (predicate == null) predicate = newPredicate;
else predicate = Expression.OrElse(predicate, newPredicate);
}
return data.Where(predicate);
РЕДАКТИРОВАТЬ: Это, вероятно, то, что делает PredicateBuilder, только намного беспорядочно:)