3

我想創建一個關係到使用FluentNHibernate相同的實體,但不知道如何。有人成功了嗎?你可以幫我嗎?使用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; } 
} 

回答

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() 
    } 
} 

注:由於菜單實例可以有,它也可能有孩子 。我擴展了一個應該這樣宣佈的兒童系列的映射:

public class Menu 
{ 
    ... 
    public virtual Menu ParentMenu { get; set; } 
    public virtual IList<Menu> ChildMenus { get; set; } 
}