У меня есть приложение для блога , которое моделирует базу данных с помощью Entity Framework. Проблема с этим блогом в том, что стало трудно найти то, что я ищу. Ему нужна функция поиска, но я не уверен, как реализовать это с помощью SQL и / или LINQ to Entities.
Прямо сейчас я ищу в своей базе данных этот запрос LINQ, но похоже, что он должен быть лучше.
public IEnumerable SearchBlogPosts(string query, int page, int itemsPerPage)
{
var result = _dataContext.BlogPosts
.Where(BlogPostContains(query))
.OrderByDescending(x => x.PostedDate)
.Skip((page - 1) * itemsPerPage)
.Take(itemsPerPage),
return result;
}
private Func BlogPostContains(string query)
{
return x => x.Title.Contains(query) || x.Body.Contains(query) || x.Author.Contains(query);
}
] Одна большая проблема заключается в том, что поиск чувствителен к регистру.
Вопрос 1) Есть ли лучший способ выполнить поиск с помощью LINQ to Entities?
Вопрос 2) А как насчет простого SQL? Как мне написать хранимую процедуру поиска в SQL Server, чтобы я мог отображать и использовать ее в EF вместо LINQ?
Мне просто нужен поиск без учета регистра, который выполняется в базе данных, чтобы поддерживать хорошую производительность.
Заранее спасибо.