Я гуглял, но не нашел никакой хорошей информации о построении хорошей функции поиска в проекте ASP.NET MVC.
Вдобавок ко всему, функция поиска для поиска авторов и книг будет выглядеть следующим образом:
char[] delimiterChars = { ' ', ','};
string[] searchterms = SearchBox.Split(delimiterChars);
IQueryable<SearchResult> SR = _db.Books.Where(e =>
(e.Title.Contains(SearchTerm[0]) || e.Author.Name.Contains(SearchTerm[0]))
&& (e.Title.Contains(SearchTerm[1]) || e.Author.Name.Contains(SearchTerm[1]))
//&& repeat for as many words were entered in the search box
)
.Select(e => new SearchResult
{
Title = e.Title,
Type = "Book",
Link = "Book/" + e.BookID
});
Вопросы * * 1006
Есть ли лучший способ сделать это?
Если нет, как я могу динамически создать свой SQL-запрос, чтобы найти столько поисковых терминов, сколько было введено?
Можно ли добавить результаты поиска из второго поиска в переменную SR
?
Другие соображения
В поиске выше я ищу результаты, которые соответствуют Книге или Автору. Может быть, сразу после того, как я хочу выполнить поиск, просто ища совпадение в таблице «Автор», а затем добавлю эти результаты к результатам переменной SR
из первого запроса. Я не знаю, является ли это наиболее практичным подходом, но можно ли это сделать?