0

同一のプリミティブ/ナビゲーション プロパティを持つ 3 種類の Html クラスがあるとします。

  1. パブリック仮想文字列 HtmlTagName {get; 設定;}
  2. public virtual ICollection < 属性 > 属性 {get; 設定;}

    などなど

これら 3 つのクラスの唯一の違いは次のとおりです。

  1. 1 つの Html クラスは、Html クラス (親 Html クラス) のコレクションを持つことができます。
  2. 1 つのクラスを Html クラスの子にすることができます (子 Html クラス)
  3. 1 つのクラスはスタンドアロンです。別の html クラス (Single Html Class) の親でも子でもありません。

私には、同一のプロパティの3つのクラスがあり、それが親、子、または単一であるかどうかを保存しているように見えます(プロパティの多くが同一であるため)。

4

1 に答える 1

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

}

于 2012-08-12T15:05:36.120 に答える