2012-10-12 108 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