2012-08-12 107 views
0

讓我們假設我有3種類型具有相同元/導航屬性HTML類的:實體框架,代碼第一次3類相同的屬性

  1. 公共虛擬字符串HtmlTagName {獲得;設置;}
  2. public virtual ICollection <屬性>屬性{get;設置;}

    等等等等等等

這些3類之間的唯一差別是:

  1. 一個的Html類可具有HTML類的集合(父的Html類)
  2. 一個類可以是一個Html類(Child Html Class)的子類
  3. 一個類是獨立的,即。它不是一個父類別,也不是一個HTML類別的另一個html類別(單個Html類別)

在我看來,擁有3個相同屬性的類,保存它是父類,子類還是單個類,因爲(同樣,儘可能多的屬性是相同的)。

回答

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; } 
    } 

}

+0

是的,除非有一個孩子永遠不能變成父母等等,那麼你的要求需要使用其他模式,例如遺產。 – 2012-08-14 15:25:38