实体框架,Code First 3类相同的属性

时间:2012-08-12 14:32:46

标签: entity-framework-4

让我们假设我有3种类型的Html类具有相同的基元/导航属性:

  1. 公共虚拟字符串HtmlTagName {get;设置;}
  2. 公共虚拟ICollection<属性>属性{get; set;}

    等,等等。

  3. 这三个类之间的唯一区别是:

    1. 一个Html类可以包含一组Html类(父Html类)
    2. 一个类可以是Html类(Child Html类)的子类
    3. 一个类是独立的,即。它既不是父类,也不是另一个html类(单一Html类)的子类html类
    4. 在我看来,拥有3类相同的属性,除了它是父类,子类还是单一类之外,从此没有(再次,尽可能多的属性相同)。

1 个答案:

答案 0 :(得分:0)

我想我找到了答案,如果我错了,有人会纠正我:

public class HtmlElement : DelEntity
{
    // Primitives
    public virtual string DisplayName { get; set; }

    // Foreign Key
    public virtual long? ParentElementId { get; set; } // If it is a child

    //Navigation - Class
    [ForeignKey("ParentElementId")]
    public virtual HtmlElement ParentHtmlElement { get; set; }        

    //Navigation - Collections (if it is a parent)
    private ICollection<HtmlElement> _childElements;

    [InverseProperty("ParentHtmlElement")]
    public virtual ICollection<HtmlElement> ChildElements
    {
        get { return _childElements ?? (_childElements = new HashSet<HtmlElement>()); }
        set { _childElements = value; }
    } 

}