实体框架(Code First)递归父级

时间:2015-04-23 19:23:45

标签: c# entity-framework ef-code-first

我正在尝试描述树状结构,其中每个项目都是树中的节点,并且可以(或不)具有父节点。

在描述Node实体时,这有效:

public class Node
{
    public int Id {get;set;}
    public string Description {get;set;}
    public int ParentId {get;set;}
}

我得到一个名为Nodes的表格,上面的列和Id上的PK。如果我然后添加一个新参数:

public virtual Node Parent {get;set;}

为了快速/轻松地访问父节点,创建代码添加了一个外键约束,要求ParentId指向Node Id

由于某些节点没有父节点,因此尝试添加Node为0的ParentId失败。

有办法做到这一点吗?

1 个答案:

答案 0 :(得分:2)

您的数据模型有任何限制吗?如果不是只是尝试使parentId可以为空:

   public int? ParentId {get;set;}