2009-11-10 3 views
1

우리는 웹 애플리케이션에서 두 개의 데이터베이스를 사용합니다. 하나는 미국에 있고 다른 하나는 캐나다에 있습니다. 해당 국가의 데이터 만 표시됩니다. 엔티티가 이미 USA 용으로 작성 되었기 때문에 SessionFactory 객체를 생성 할 때 문제가 발생할 것으로 생각됩니다. 이제 때 nHibernate 수는 같은 기관과 함께 CAN 데이터베이스의 공장을 만들려고, 나는 다음과 같은 오류 얻을 :동일한 엔티티가있는 다른 데이터베이스 서버에 대한 nhibernate 세션

Could not find connection string setting (set connection.connection_string or connection.connection_string_name property)

어떻게이 문제를 해결할 수 있습니까?

업데이트 :

NHibernate.Connection.ConnectionProvider.Configure (IDictionary 2 settings) at NHibernate.Connection.ConnectionProviderFactory.NewConnectionProvider(IDictionary 2 설정) 에서 NHibernate.Cfg.SettingsFactory.BuildSettings (IDictionary`2 속성) 에서에서 : 여기 는 스택 추적입니다 D에서 FluentNHibernate.Cfg.FluentConfiguration.BuildSessionFactory에서 NHibernate.Cfg.Configuration.BuildSessionFactory()에서 NHibernate.Cfg.Configuration.BuildSettings() () : 종류 : \ \ FluentNH \ SRC \ FluentNHibernate \ CFG \ FluentConfiguration.cs 빌드 93

답변

0

하지만 DAL 당신은 CAN에 대한 NHibernate에 세션의 인스턴스와 미국 NHibernate에 세션의 인스턴스를 회전하지 않아야 인프라의 서로 다른 두 세트에 두 개의 서로 다른 데이터 소스에 연결되어 주어진. 쿼리 후 결과를 병합 하시겠습니까? 하나의 세션을 사용하여 필사적 인 두 데이터 소스를 쿼리하면 물리적으로 가능하더라도 올바른 접근 방식처럼 들리지 않습니다. 우려의 분리가 여기에 적용되어야한다고 생각합니다.

프리젠 테이션 -> 서비스 계층 | -> projectName.dataAccess.usa.EntityRepository | -> projectName.dataAccess.can.EntityRepository

관련 문제