2012-10-12 142 views
0

如何讓NHibernate.Tool.hbm2ddl.SchemaExport在一個數據庫中導出某些類,並在另一個數據庫中導出某些類?例如。 Person類應使用一個連接字符串映射到數據庫,而Product應保存到不同的數據庫,因此SchemaExport應在一個DB中創建一個Person表,並在第二個數據庫中創建Product表。將類映射到多個數據庫

我爲我的類定義了NHibernate映射,但我不知道在哪裏爲每個類分別指定數據庫/連接字符串。

回答

1

映射與數據庫無關,無法在其中定義連接字符串。構建兩個配置對象,每個數據庫一個,並將所有類添加到適當的配置。然後對每個配置使用Schemaexport。

var config1 = new Configuration() 
    .AddClass(typeof(Person)) 
    .AddClass(typeof(Customer)) 
... 

new SchemaExport(config1).Create(false, true); 

var config2 = new Configuration() 
    .AddClass(typeof(Product)); 

new SchemaExport(config2).Create(false, true); 
+0

*所有類都轉換爲適當的配置* - 這是我不知道該怎麼做的部分。 – Lou

+0

非常感謝! 'AddClass'方法似乎是我正在尋找的。我從所有網絡示例中簡單地通過慣性使用'AddAssembly',甚至沒有想到使用'AddClass'可以更好地實現粒化。 – Lou