2014-10-18 52 views
0

嘗試製作現有PHP/MySql庫應用程序的MVC應用程序。我無法獲得最基本的工作,而且我覺得自己像個白癡。類中的MVC類未被填充

我有以下類中定義:

Book類:

public class Book 
{ 
    public int BookID { get; set; } 
    public string BookName { get; set; } 
    public int? SeriesID { get; set; } 
    public int GenreID { get; set; } 
    public Genre Genre { get; set; } 
    etc 
} 

Genre類:

public class Genre 
{ 
    public int GenreID { get; set; } 
    public string GenreName { get; set; } 

    public virtual ICollection<Book> Books { get; set; } 
} 

當我運行此我看到創建的每本書對象都有一個類別對象,但它是空的,並且流派的數據沒有被填充。

的書中類GenreId是一個外鍵

誰能告訴我什麼,我做錯了什麼?

+0

「書類中的GenreId是一個外鍵」在你的數據庫中是這樣嗎? – tmg 2014-10-18 06:34:10

+0

它最初不會,我在開始使用MVC時添加了它 – MackTheKnife 2014-10-18 06:38:29

回答

0

書上的流派屬性應該是虛擬的。如果它不是虛擬的,那麼只是檢索書籍的簡單查詢將始終使體裁保持空白。使它變爲虛擬允許Entity Framework創建一個動態代理類,繼承自Book,它實現了Genre屬性的getter,並使用代碼發出查詢以從數據庫填充並返回Genre。

您已經將Genre的書籍集合變爲虛擬,因此已經可以作爲懶讀取屬性。

延遲加載的替代方法是在查詢中使用.Include以包含流派屬性。