Я пытаюсь выполнить автозаполнение поиска, используя веб-сервис и Linq To Sql для доступа к базе данных.
Вот мой код. Это возвращает результаты, которые соответствуют любому из условий поиска, я хотел бы изменить это так, чтобы каждый результат содержал все условия поиска.
Я знаю, что полнотекстовый поиск SQL, возможно, является наиболее элегантным решением, но я хотел бы посмотреть, возможна ли эта функция без изменения базы данных.
string[] searchTerms = searchString.Split(new string[] { " " }, StringSplitOptions.RemoveEmptyEntries).ToArray();
IQueryable<AccountResult> results = db.cdAccounts
.Select(x =>
new AccountResult()
{
idAccount = x.id_Account,
AccountName = x.AccountNme,
AccountNumber = x.AccountNum
}).Distinct().OrderBy(x => x.AccountName);
foreach (string searchTerm in searchTerms)
results = results.Where(x => x.AccountName.Contains(searchTerm) || x.AccountNumber.Contains(searchTerm));
return results.OrderBy(x => x.AccountName).Take(40).ToList();