【问题标题】:Same entity relationship using FluentNHibernate使用 FluentNHibernate 的相同实体关系
【发布时间】:2013-01-22 02:16:32
【问题描述】:

我正在尝试使用 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; }
}

【问题讨论】:

    标签: nhibernate asp.net-mvc-4 fluent-nhibernate fluent-nhibernate-mapping


    【解决方案1】:

    映射可能是这样的

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-08-24
      • 1970-01-01
      • 1970-01-01
      • 2017-04-08
      • 2014-12-11
      • 1970-01-01
      • 2021-02-09
      • 2020-07-13
      相关资源
      最近更新 更多