У меня есть приложение для блога , которое моделирует базу данных с использованием Entity Framework.Проблема с этим блогом в том, что стало трудно найти то, что я ищу.Для этого требуется функция поиска, но я не уверен, как реализовать это с помощью SQL и / или LINQ to Entities.
Сейчас я ищу в своей базе данных этот запрос LINQ, но, похоже, это должно быть лучше.
public IEnumerable<BlogPost> 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<BlogPost, bool> 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?
Я просто хочу, чтобы поиск без учета регистра выполнялся в базе данных, чтобы поддерживать хорошеепроизводительность.
Заранее спасибо.