0
我有以下方法:LINQ的联盟操作
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()
}
其停止在最后一行的工作。为什么?也许有人知道更有效的方式来获得属于相应类型ID的所有实体?
你是什么意思由停止工作?该查询在那个时间点被解析,所以如果查询花费太长时间,它将一直呆在那里,直到结果准备就绪。为了更好地实现'.Contains' –
如果你的意思是下一行在调试时不会运行,请在它之间放一个'try catch'并获取异常消息以查看错误 –
它显示什么错误? –