【问题标题】:EF6 Code First - Self-referencing configure navigation propertiesEF6 Code First - 自引用配置导航属性
【发布时间】:2016-10-25 13:49:46
【问题描述】:

我正在尝试创建这个简单的 Categories 表:

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 coded- 在两边都有导航属性,但这不起作用。 Children 属性存在问题。

每当我从 DbContext 查询 Categories 时,我都会得到:

对象引用未设置为对象的实例

(我尝试了使用和不使用 [InverseProperty])

有什么建议吗?谢谢...

编辑

对不起,我发现问题出在这个实体的另一个导航属性中,我没有在上面的代码中列出。这个问题现在毫无意义,我将其标记为删除,但感谢@TanguyB 和@Pavel Bory 的帮助。

【问题讨论】:

    标签: c# entity-framework


    【解决方案1】:

    您是否尝试过在您的类的构造函数中初始化 ICollection。我也遇到了一些问题,并且为我解决了问题。

    【讨论】:

      【解决方案2】:

      您确定您的数据库中没有损坏/不一致的数据吗?因为我尝试实现与您相同的模型类类别并且它有效。我尝试创建类别实例并链接它们,然后从数据库中重新加载它们并且它可以工作。尝试从数据库中删除数据,然后重试。如果在那之后仍然出现问题,您能否发布您的 DbContext 类的代码示例以及您在哪里使用它的代码片段?

      【讨论】:

        猜你喜欢
        • 2016-10-10
        • 1970-01-01
        • 2016-03-16
        • 2014-01-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多