如何自动将两个类映射到一个数据库实体?
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个实体到数据库。
答案 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;
}