实体框架模型第一自我引用

时间:2015-01-07 20:16:35

标签: c# entity-framework-5 self-reference

我见过一堆代码的第一个例子,但不是第一个模型。

我想创建一个Parent-Child关系,其中ParentId可以为空,如果Category是一个真正的SubCategory,它将有一个ParentId。

当我通过设计师做到这一点时,最终产生了这个......这看起来与我想要创建的相反:

public partial class Category : NWatchObjectBase
{
    public Category()
    {
        this.Tags = new HashSet<Tag>();
        this.Parent = new HashSet<Category>();
    }

    public int Handle { get; set; }
    public string Name { get; set; }
    public Nullable<long> ParentId { get; set; }

    public virtual ICollection<Tag> Tags { get; set; }
    public virtual CasModelClass ModelClass { get; set; }
    public virtual ICollection<Category> Parent { get; set; }
    public virtual Category Child { get; set; }
}

1 个答案:

答案 0 :(得分:0)

我认为你需要这样的东西。 EF应该优雅地处理这个问题。

public partial class Category : NWatchObjectBase
{
    public Category()
    {
        this.Tags = new HashSet<Tag>();
        this.Children = new HashSet<Category>();
    }

    public int Handle { get; set; }
    public string Name { get; set; }

    public virtual ICollection<Tag> Tags { get; set; }
    public virtual CasModelClass ModelClass { get; set; }
    public virtual ICollection<Category> Children { get; set; }
    public virtual Category Parent { get; set; }
}