2012-10-12 3 views
0

NHibernate.Tool.hbm2ddl.SchemaExport을 특정 데이터베이스에서 특정 클래스를 내보내려면 어떻게해야합니까? 예 : Person 클래스는 하나의 연결 문자열을 가진 데이터베이스에 매핑되어야하고 Product은 다른 데이터베이스에 저장되어야하므로 SchemaExportPerson 테이블을 하나의 데이터베이스에 만들고 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

관련 문제