2010-04-10 121 views
1

我正在構建一個框架,人們可以通過繼承我的一個類來保存創建的項目。我將遍歷appdomain中的每個類型以查找要映射到nhibernate的類。我發現每個類都是繼承類型的子類。FluentNhibernate動態運行時映射

我知道如何在FluentNhibernate中創建子類型,但是每個子類型都需要自己的ClassMap類。由於我不會知道這些直到運行時,我無法做到這一點。

有沒有一種方法可以將流暢的映射添加到流暢的nhibernate?

請注意,我知道這可能沒有流利的nhibernate使用Cfg類,但我不想用兩種不同的方式管理相同的代碼。

+1

我有項目像你描述。你的解決方案是什麼? – sh1ng 2011-01-08 21:07:12

回答

0

一次支持這個,並且api仍然存在,但現在它已被刪除。

1

東西沿線

Type classToMap = GetClassToMap(); 
var subclassmap = typeof(SubClassMap<>).MakeGenericType(classToMap); 

foreach(var item in classToMap.GetPropertiesToMapSomehow()) 
{ 
    var expression = // build lambda of property 
    subclassMap.Map(expression).Column("col") ... 
} 

config.Add(subclassmap) // NHibernate.Cfg.Configuration