我想在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被排除。我是否需要包含与嵌套类别一样多的逆向属性? –