EF7 MVC6的實體關係

asp.net-core entity-framework-core

我的目標是使用EF7和MVC6 [BETA2]列出一些書架和每個書架上的書籍數量。

使用正確的表關係正確創建數據庫模式。我可以成功地將數據庫和書籍添加到數據庫中,包括外鍵關係(參見下面的代碼)。

當我測試應該在每個書架上顯示書籍數量的索引頁面時,我沒有收到任何書籍計數數據且沒有錯誤。在Shelf實體中,屬性Books仍未使用Book實體填充,因此count為null(請參閱下面的代碼)。

在EF7中,我需要編寫代碼來填充Shelf.Books,還是應該在EF7中自動執行?

BookShelf.cs

namespace MyApp.Models
{
    public class Shelf
    {
        public int ShelfId { get; set; }
        public string Name { get; set; }
        public virtual List<Books> Books { get; set; }
    }

    public class Book
    {
        public int BookId { get; set; }
        public string Name { get; set; }
        public int ShelfId { get; set; }
        public Shelf Shelf{ get; set; }
    }
}

ApplicationDbContext.cs

namespace MyApp.Models
{
    public class Shelf
    {
        public int ShelfId { get; set; }
        public string Name { get; set; }
        public virtual List<Books> Books { get; set; }
    }

    public class Book
    {
        public int BookId { get; set; }
        public string Name { get; set; }
        public int ShelfId { get; set; }
        public Shelf Shelf{ get; set; }
    }
}

ShelfController.cs

namespace MyApp.Models
{
    public class Shelf
    {
        public int ShelfId { get; set; }
        public string Name { get; set; }
        public virtual List<Books> Books { get; set; }
    }

    public class Book
    {
        public int BookId { get; set; }
        public string Name { get; set; }
        public int ShelfId { get; set; }
        public Shelf Shelf{ get; set; }
    }
}

Index.cshtml

namespace MyApp.Models
{
    public class Shelf
    {
        public int ShelfId { get; set; }
        public string Name { get; set; }
        public virtual List<Books> Books { get; set; }
    }

    public class Book
    {
        public int BookId { get; set; }
        public string Name { get; set; }
        public int ShelfId { get; set; }
        public Shelf Shelf{ get; set; }
    }
}

熱門答案

我發現的是,EF不會使用開箱即用的相關子對象填充父對象。例如,myShelf.Books將為空,直到填充在控制器動作函數中。




許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因
許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因