Одним из вариантов будет фильтрация на клиенте, а не в SQL.Вы можете принудительно оценить where
на клиенте, вызвав AsEnumerable()
.Однако это означает, что каждая строка таблицы загружается в память перед проверкой на совпадение, поэтому она может быть неприемлемо неэффективной, если ваш поиск соответствует только небольшому количеству результатов из большой таблицы.
var allPersons =
from x in SDC.Staff_Persons
orderby x.Surname
select x;
var searchResults =
from x in allPersons.AsEnumerable()
where staffTermArray.Any(pinq => x.Forename.Contains(pinq))
|| staffTermArray.Any(pinq => x.Surname.Contains(pinq))
|| staffTermArray.Any(pinq => x.Known_as.Contains(pinq))
select x;