3

FluentNHibernate を使用して同じエンティティとの関係を作成しようとしていますが、方法がわかりません。成功した人はいますか?手伝って頂けますか?

これは私のエンティティクラスです:

public class Menu
{
    public virtual Guid MenuId { get; set; }
    public virtual string Name { get; set; }
    public virtual string Description { get; set; }
    public virtual string Controller { get; set; }
    public virtual int Order { get; set; }
    public virtual Menu ParentMenu { get; set; }
}
4

1 に答える 1

3

マッピングは次のようになります

public class MenuMap : ClassMap<Menu>
{
  public MenuMap()
  {
      Table("MenuTable");
      Id(x => x.MenuId)
      ...

      // parent
      References(x => x.ParentMenu).Column("ParentId");

      // children, see note below
      HasMany(x => x.ChildMenus)
      .Inverse()
      .KeyColumn("ParentId")
      .Cascade.AllDeleteOrphan()
  }
}

注: Menuインスタンスはparentを持つことができるため、 childrenを持つこともできます。次のように宣言する必要がある子コレクションでマッピングを拡張しました。

public class Menu
{
    ...
    public virtual Menu ParentMenu { get; set; }
    public virtual IList<Menu> ChildMenus { get; set; }
}
于 2013-01-22T04:58:52.037 に答える