2

このようなエンティティ ページが 1 つあるとします。

public class Page
{
   public int Id {get; set;}
   public string Title {get; set;}
   public string Body {get; set;}
   ... to do
}

ここで、 1 つ以上のページまたは 1 つ以上のページを 1 つの親に属することPageができる機能を追加したいと考えています。PagePage

この要件を念頭に置いて、この Page エンティティを (nhibernate を使用して) どのようにマッピングしますか?

どのタイプのマッピングでも問題ありません (流暢、コードによるなど)。

さらに情報が必要な場合は、お問い合わせください。

4

2 に答える 2

2

それらを自己参照にすることができます..次のように:

Page
----
Id INT PRIMARY KEY IDENTITY
Title VARCHAR(50)
Body VARCHAR(500)
ParentId INT

次に、Fluent では、次のようになります。

public class Page {
    public virtual int Id { get; set; }
    public virtual string Title { get; set; }
    public virtual string Body { get; set; }
    public virtual Page Parent { get; set; }
    public virtual IList<Page> Children { get; set; }
}

public class PageClassMap : ClassMap<Page> {
    public PageClassMap() {
        Table("Page");
        Id(x => x.Id).GeneratedBy.Identity();
        Map(x => x.Title);
        Map(x => x.Body);
        References(x => x.Parent);
        HasMany(x => x.Children).KeyColumn("ParentId");
    }
}
于 2013-09-16T09:53:23.733 に答える