1

다음을 관리하는 가장 좋은 방법에 대한 의견을 듣고 싶습니다. 나는 MVC 애플리케이션 프로젝트와 DomainModel 프로젝트를 가지고있다. NHibernate 매핑과 hibernate.cfg.xml은 MVC 어플리케이션에서 참조되는 DomainModel 프로젝트에 있습니다. 내 모든 데이터 액세스 NHibernate 연결을 통해 갈 것이라고 정상적으로 잘 작동합니다.별도의 프로젝트를 위해 NHibernate와 Asp.NET MVC ConnectionString을 어떻게 관리해야합니까?

문제는 Sql Membership 공급자를 사용하므로 Asp.net MVC에서 직접 연결 문자열에 액세스해야한다는 것입니다.

질문 1

누군가가 전에이 문제를했고 무슨 일이 가장 깨끗한 해결책이 될 것이다습니까? 나는 연결 고리를 저장하는 곳이 한 군데 밖에 없도록하고 싶다.

질문이 어떻게 디버그를 들어, 두 개의 별도 연결을 자 NHibernate를 구성하고 코드

#if DEBUG 
connection = configuration.Properties[/*DEBUGconnectionstring-hibernate.cfg.xml*/] 
#else 
connection = configuration.Properties[/*RELEASEconnectionstring-hibernate.cfg.xml*/] 
#endif 

현재 유일하게 유효한 속성이 connection.connection_string되어 함께 출시한다.

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

감사합니다.

답변

2

어쩌면 nhibernate 구성 정보를 프로젝트 구성 파일 (app.config 또는 web.config)로 이동하면 문제가 해결됩니다. 예를 들어 하나의 솔루션에 2 개의 프로젝트가 있습니다. 그 중 하나가 WCF 서비스이고 다른 하나는 서비스입니다. 나는 각각의 프로젝트 설정 파일을 seperatly하게 연결 정보를 가지고있다.

<hibernate-configuration xmlns="urn:nhibernate-configuration-2.2"> 
    <session-factory> 
     <property name="connection.provider">NHibernate.Connection.DriverConnectionProvider</property> 
     <property name="dialect">NHibernate.Dialect.Oracle10gDialect</property> 
     <property name="default_schema">DUMMY</property> 
     <property name="connection.driver_class">NHibernate.Driver.OracleClientDriver</property> 
     <property name="connection.connection_string">Data Source=SRV_OLDEV;User Id=USRdummy;Password=USRdummy;</property> 

     <property name="proxyfactory.factory_class"> 
     NHibernate.ByteCode.LinFu.ProxyFactoryFactory, NHibernate.ByteCode.LinFu 
     </property> 
     <property name="show_sql">true</property> 
    </session-factory> 
    </hibernate-configuration> 
0

FNH를 사용하여 NH 코드에 내 연결을 설정했습니다. 이것은 당신을위한 옵션이 아니지만, 그렇다면이 문제는 사라집니다.