流畅的NHibernate自动映射2个类到一个实体

时间:2013-01-05 12:24:18

标签: c# nhibernate orm

如何自动将两个类映射到一个数据库实体?

public abstract class Root
{
        public virtual int Id { get; set; }
        public virtual string Item { get; set;}
}

public class First
{
        public override string ToString()
        {
                return "First " + Id;
        }
}

public class Second
{
        public override string ToString()
        {
                return "Second " + Id;
        }
}

此代码生成2个实体到数据库。

1 个答案:

答案 0 :(得分:1)

Fluent NHibernate documentation解释得很好。第一步是让扩展类继承自基类:

public class First : Root

由于您的基类是抽象的,因此您指示FNH不将其映射为具体类:

AutoMap.AssemblyOf<Entity>(cfg).IgnoreBase<Entity>();

FNH默认使用每子类表映射策略。如果要使用每层次表映射(我推荐),请覆盖IsDiscriminated方法:

public override bool IsDiscriminated(Type type)
{
   return true;
}