1

我有一個基類,它有2個派生類。流利的nHibernate抽象類(非)映射問題

每個派生類都有一個映射文件(它們基類有非和它的摘要)

每個派生類具有指向本身(它在基類中定義)的對象;

class Base 
{ 
    Base myManager; 
} 
class Derived1 : Base 
{ 

} 

Class Derived2 : Base 
{ 
} 

對於每個派生類存在映射:

Map(x=>x.myManager, "ManagerID"); 

但是流利不能創建會話工廠,如x.myManager點到未映射的類(鹼)

我不不想在派生類中使用 Derived1 myManager和Derived2 myManager,因爲使用這些類的其他類只知道基類的屬性。

任何想法如何解決這種情況?

回答

2

您需要創建一個基類的映射:

public class BaseMap : ClassMap<Base> 
{ 
    public BaseMap() 
    { 
     References(x => x.myManager, "ManagerID"); 
    } 
} 

然後映射其他類的子類:

public class Derived1Map : SubclassMap<Derived1> 
{ 
    public Derived1Map() 
    { 
     // other mapping here... 
    } 
}