我正在开展一个项目,其中有两个相互关联的模型。书籍和书籍类别。我被困在一个功能上,我想显示某个类别中的所有书籍。 例如,显示“恐怖”类别中的所有书籍。我知道它在带有 .Include() 函数的某个地方,但我遇到了死胡同,需要一些指针来解决这个问题 - 谢谢!
这是我的模型的样子:
模型/book.cs
class Book
{
[Key]
public int Id { get; set; }
public string Title { get; set; }
public string Author { get; set; }
public int Price { get; set; }
public int Amount { get; set; }
public List<BookCategory> BookCategories { get; set; }
}
模型/BookCategory.cs
class BookCategory
{
[Key]
public int Id { get; set; }
public string Name { get; set; }
public List<Book> Books { get; set; }
}
我知道到目前为止我可以在书籍中包含该类别
db.Books.Include("BookCategory");
但是我不知道如何匹配条件来告诉我只想获取某个类别的书籍
答案 0 :(得分:0)
如果你想按类别过滤,你可以这样做:
db.Books
.Include("BookCategory")
.Where(b => b.BookCategories.Any(c=>c.Name == "Horror"));
这应该可行,虽然我现在更习惯于实体框架核心。