Asp.net mvc Can';t获取类别';即使Book实体具有类别外键,是否仍保留其books?

Asp.net mvc Can';t获取类别';即使Book实体具有类别外键,是否仍保留其books?,asp.net-mvc,asp.net-core,model-view-controller,entity-framework-core,Asp.net Mvc,Asp.net Core,Model View Controller,Entity Framework Core,我刚接触asp.net,对我来说很容易:D,我正在构建一个简单的CRUD应用程序,我成功地获得了正确的列表和路由,但现在我想获得一本分类书籍 这就是我的书&类别实体: public class Book { [Key] public int bookId { get; set; } public string bookName { get; set; } public double bookPrice { get; set;

我刚接触asp.net,对我来说很容易:D,我正在构建一个简单的CRUD应用程序,我成功地获得了正确的列表和路由,但现在我想获得一本分类书籍

这就是我的书&类别实体:

public class Book
    {
        [Key]
        public int bookId { get; set; }
        public string bookName { get; set; }
        public double bookPrice { get; set; }
        public string bookImageUrl { get; set; }
        [ForeignKey("Category")]
        public int categoryId { get; set; }
        public Category category { get; set; }

    }

public class Category
    {
        [Key]
        public int categoryId { get; set; }
        public string categoryName { get; set; }
        public string categoryDescription { get; set; }
        public List<Book> books { get; set; }
    }
我在数据库中有一本书和一个类别,就是这样:

有什么想法吗?有向导吗


如果您需要任何帮助,我们将不胜感激。

因为您要求的是第一次或默认

return _appDbContext.Categories.Include(category => category.books).FirstOrDefault(category => category.categoryId == categoryId);
它返回找到的第一个类别。这就是为什么你只有一张唱片。它是一个关系数据库。每一条记录都有一个bookId和一个categoryId,它会将第一条记录带到正确的位置

如果您想要一个具有类别的图书列表,您必须对此进行更改查询

public IEnumerable<Book> getBooksByCategoryId(int categoryId)
        {
 return _appDbContext.Books.Include(c => c.category).Where(category => category.categoryId == categoryId).ToArray();
}
public IEnumerable getBooksByCategoryId(int categoryId)
{
return _appDbContext.Books.Include(c=>c.category).Where(category=>category.categoryId==categoryId.ToArray();
}

我没听懂你说的话?”这就是为什么你只有一张唱片?不,我不能得到任何记录,正如标题中所说,我一直在等待得到一个,因为只有一个,但没有工作!我得到“空”
return _appDbContext.Categories.Include(category => category.books).FirstOrDefault(category => category.categoryId == categoryId);
public IEnumerable<Book> getBooksByCategoryId(int categoryId)
        {
 return _appDbContext.Books.Include(c => c.category).Where(category => category.categoryId == categoryId).ToArray();
}