Nhibernate 如何将继承映射到子类
我有一个不是抽象的基类和两个基于这个类的类,但是它们在计算结果时有不同的实现。基类还继承自一个抽象类,该抽象类在系统中的许多不同位置共享,因此我无法真正更改该抽象类 我知道我可以提取一个所有三个继承自的基类,并使用子类的普通映射,但我只想知道是否有可能创建一个映射此场景的hbm文件Nhibernate 如何将继承映射到子类,nhibernate,inheritance,mapping,subclass,Nhibernate,Inheritance,Mapping,Subclass,我有一个不是抽象的基类和两个基于这个类的类,但是它们在计算结果时有不同的实现。基类还继承自一个抽象类,该抽象类在系统中的许多不同位置共享,因此我无法真正更改该抽象类 我知道我可以提取一个所有三个继承自的基类,并使用子类的普通映射,但我只想知道是否有可能创建一个映射此场景的hbm文件 class BaseClass : CalculationBaseClass { public virtual int Calculate() { ... } } class Speci
class BaseClass : CalculationBaseClass
{
public virtual int Calculate()
{
...
}
}
class SpecializedClass : BaseClass
{
public override int Calculate()
{
...
}
}
class HistoricClass : BaseClass
{
public override int Calculate()
{
...
}
}
来自NHibernate:
NHibernate支持三种基本的继承映射策略
- 每个类层次结构的表
- 每个子类的表
- 每种混凝土等级的表
<class name="CalculationBaseClass" table="MyTable">
<id name="Id" type="Int64" column="ID">
<generator class="native"/>
</id>
<discriminator column="TYPE" type="String"/>
<subclass name="BaseClass" discriminator-value="BASE">
...
</subclass>
<subclass name="SpecializedClass" discriminator-value="SPECIALIZED">
...
</subclass>
<subclass name="HistoricClass " discriminator-value="HISTORIC">
...
</subclass>
</class>
...
...
...
无法100%确定您要实现的目标-能否指定希望表结构的外观?