我想在ASP.NET MVC 3中開發一個目錄項目,並首先在現有數據庫中使用EF代碼。在我的數據庫中有一個分類指向自己的表。爲此,我寫了下面的模型類。 - 「糾正我,如果模型是錯誤的」 -使用具有外部/導航鍵的模型類
public class Category
{
public int CategoryID { get; set; }
public string CategoryName { get; set; }
public int? ParentCategoryID { get; set; }
public string CategoryDesc { get; set; }
[ForeignKey("ParentCategoryID")]
public virtual Category ParentCategory { get; set; }
public virtual ICollection<Product> Products { get; set; }
}
問題:我無法理解,我怎麼可以用這個類的工作。使用下列代碼並將其傳遞給視圖
var cat = dbStore.Categories.Include("ParentCategory").ToList()
。
我得到這個錯誤:對象引用未設置爲對象的實例。發生這種情況是因爲根類別具有空的ParentCategoryID。請告訴我,您將如何使用此代碼或可以幫助我理解在這種情況下工作的任何資源。只要使用上述模型,任何類型的代碼都會有幫助,例如顯示列表或菜單或其他任何內容,任何內容。
是增加必要InverseProperty對於這種類型的分層數據的工作? 。這種利用類型是否適用於所有類型的場景,如菜單,列表,產品列表和處理類別的每個需求。 –
@Pankaj它不僅適用於分層數據。如果EF無法根據約定找出關係,那麼我們必須通過屬性或流利的API來明確地配置它們。 – Eranga
我試過這段代碼,它工作正常;但它只是一個深層次。深層嵌套類別不在列表中。像:: ** category - subCategory - subsubCategory **。在這個subsubCategory被排除。我是否需要包含與嵌套類別一樣多的逆向屬性? –