2013-01-05 81 views
0

如何將兩個類自動映射到一個數據庫實體?流利的NHibernate自動映射2類到一個實體

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個實體到數據庫。

回答

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; 
} 
+0

謝謝。解決了我的問題。 – Nomit