我有一个基类,它有2个派生类。
每个派生类都有一个映射文件(它们的基类有非,它是抽象的)
每个派生类都有一个指向自身的对象(在基类中定义);
class Base
{
Base myManager;
}
class Derived1 : Base
{
}
Class Derived2 : Base
{
}
对于每个派生类,都有一个映射:
Map(x=>x.myManager, "ManagerID");
但是Fluent无法创建SessionFactory,因为x.myManager指向未映射的类(Base)
我不想用 派生类中的Derived1 myManager和Derived2 myManager,因为使用这些类的其他类只知道基类的属性。
任何想法如何解决这种情况?
答案 0 :(得分:2)
您需要为基类创建映射:
public class BaseMap : ClassMap<Base>
{
public BaseMap()
{
References(x => x.myManager, "ManagerID");
}
}
然后将其他类映射为子类:
public class Derived1Map : SubclassMap<Derived1>
{
public Derived1Map ()
{
// other mapping here...
}
}