Inheritance Fluent nHibernate抽象类(非)映射问题

Inheritance Fluent nHibernate抽象类(非)映射问题,inheritance,fluent-nhibernate,nhibernate-mapping,abstract-class,Inheritance,Fluent Nhibernate,Nhibernate Mapping,Abstract Class,我有一个基类,它有两个派生类 每个派生类都有一个映射文件(它们基类有非映射文件,并且是抽象的) 每个派生类都有一个指向自身的对象(在基类中定义) 对于每个派生类,都有一个映射: Map(x=>x.myManager, "ManagerID"); 但是Fluent无法创建SessionFactory,因为x.myManager指向一个未映射的类(基) 我不想用 派生类中的Derived1 myManager和Derived2 myManager,因为使用这些类的其他类只知道基类的属性 知道

我有一个基类,它有两个派生类

每个派生类都有一个映射文件(它们基类有非映射文件,并且是抽象的)

每个派生类都有一个指向自身的对象(在基类中定义)

对于每个派生类,都有一个映射:

Map(x=>x.myManager, "ManagerID");
但是Fluent无法创建SessionFactory,因为x.myManager指向一个未映射的类(基)

我不想用 派生类中的Derived1 myManager和Derived2 myManager,因为使用这些类的其他类只知道基类的属性


知道如何解决这种情况吗?

您需要为基类创建一个映射:

public class BaseMap : ClassMap<Base>
{
    public BaseMap()
    {
        References(x => x.myManager, "ManagerID");
    }
}
公共类基本映射:类映射
{
公共底图()
{
引用(x=>x.myManager,“ManagerID”);
}
}
然后将其他类映射为子类:

public class Derived1Map : SubclassMap<Derived1>
{
    public Derived1Map ()
    {
        // other mapping here...
    }
}
公共类Derived1Map:子类映射
{
公共衍生1Map()
{
//这里的其他映射。。。
}
}
public class Derived1Map : SubclassMap<Derived1>
{
    public Derived1Map ()
    {
        // other mapping here...
    }
}