我试图创建这个简单的类别表:
public class Category
{
public int Id { get; set; }
public string Name { get; set; }
public int? ParentId { get; set; }
[InverseProperty("Children")]
public Category Parent { get; set; }
[InverseProperty("Parent")]
[ForeignKey("ParentId")]
public virtual ICollection<Category> Children { get; set; }
}
我希望-as编码 - 双方都有导航属性,但这并不起作用。 儿童属性存在问题。
每当我从DbContext查询类别时,我得到:
对象引用未设置为对象的实例
(我尝试使用和不使用 [InverseProperty] )
任何提示?谢谢......
修改
对不起,我发现问题出现在这个实体的另一个导航属性中,我没有在上面的代码中列出。这个问题现在没有意义,我将其标记为删除,但感谢@TanguyB和@Pavel Bory寻求帮助。
答案 0 :(得分:0)
您是否尝试在类中的构造函数中初始化ICollection。我也遇到了一些问题,并为我修好了。
答案 1 :(得分:0)
您确定数据库中没有损坏/不一致的数据吗?因为我试图像你一样实现相同的Model类别,它可以工作。我尝试创建类别的实例并链接它们,然后从数据库重新加载它,它的工作原理。尝试从数据库中删除数据并再次尝试。如果在此之后出现问题,您可以发布DbContext类和代码段的代码示例吗?