Это одна проблема:
where = x => SqlMethods.Like(view.DocumentName, productName);
Вы игнорируете x
здесь, вместо этого используете view
, который вы только что инициализировали.Я подозреваю, что вы хотите:
where = x => SqlMethods.Like(x.DocumentName, productName);
Однако это будет заменять существующее выражение where
каждый раз.Я думаю, вы должны использовать PredicateBuilder
Джо Альбхари.Я бы тоже не стал использовать ForEach
лично:
var where = PredicateBuilder.False<vw_QuickFindResult>();
// Build LIKE Statement
foreach (string productName in searchText.Split(' '))
{
string like = productName.Replace('"', '%');
.Replace('*', '%');
where = where.Or(x => SqlMethods.Like(view.DocumentName, like));
}
return DocumentCollectionService.ListQuickFind(where);
(я предполагаю, что вам нужна функциональность; вместо этого вы можете использовать PredicateBuilder.True
и метод расширения And
)