У меня есть следующий метод:Linq Union Оператор
public IList<Book> Search(IList<int> genre)
{
IQueryable<Book> books = database.Books;
if (genres.Count > 0)
{
books = books.Include("Genres");
foreach (int genreId in genres)
{
books = books.Union(books.Where(b => b.Genres.Any(g => g.Id == genreId)));
}
}
return books.ToList()
}
Он останавливается, чтобы работать на последней строке. Зачем? Может быть, кто-то знает более эффективный способ получить все сущности, которые принадлежат соответствующему идентификатору жанра?
Что вы подразумеваете под остановкой на работу? Запрос разрешен в этой точке, поэтому, если запрос занимает слишком много времени, он останется там до тех пор, пока результаты не будут готовы. Для лучшего способа сделать это загляните в '.Contains' –
Если вы имеете в виду, что следующие строки не будут выполняться при отладке, поместите« try catch »между ним и получите сообщение об ошибке, чтобы увидеть ошибку –
, какую ошибку она показывает ? –