2010-05-28 4 views
0

다음 코드와 예외 (굵게)를 사용하여 NHibernate에 연결 문자열을 할당하고 싶습니다.NHibernate에서 동적으로 연결 문자열을 설정하는 방법

log4net.Config.DOMConfigurator.Configure(); 
Configuration config = new Configuration(); 
IDictionary props = new Hashtable(); 

props["hibernate.connection.provider"] = "NHibernate.Connection.DriverConnectionProvider"; 
props["hibernate.dialect"] = "NHibernate.Dialect.MsSql2000Dialect"; 
props["hibernate.connection.driver_class"] = "NHibernate.Driver.SqlClientDriver"; 
props["hibernate.connection.connection_string"] = @"Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=Sample;Data Source=HYDHTC92318D\SQLEXPRESS"; 
props["hibernate.connection.current_session_context_class"] = "web"; 
props["hibernate.connection.show_sql"] = "true"; 

props["hibernate.connection.proxyfactoryfactory.factory_class"] = "NHibernate.ByteCode.Castle.ProxyFactoryFactory, NHibernate.ByteCode.Castle"; 

foreach (DictionaryEntry de in props) 
{ 
    config.SetProperty(de.Key.ToString(), de.Value.ToString()); 
} 

config.AddAssembly("nhibernator"); 
factory = config.BuildSessionFactory(); 
session = factory.OpenSession(); 

ProxyFactoryFactory가 구성되지 않았습니다. 세션 팩토리 설정 섹션의 'proxyfactory.factory_class'속성을 사용 가능한 NHibernate.ByteCode 공급자 중 하나로 초기화하십시오. 예 : NHibernate.ByteCode.LinFu.ProxyFactoryFactory, NHibernate.ByteCode.LinFu 예 : NHibernate.ByteCode.Castle.ProxyFactoryFactory, NHibernate.ByteCode.Castle

나를 해결책을 알려 주시기 바랍니다. 감사 JCReddy

답변

0

해결책 여기를 참조하십시오 :

How to load application settings to NHibernate.Cfg.Configuration object?

내가이 테스트를하지 않은,하지만 당신은 변경 시도 할 수 있습니다 :

props["hibernate.connection.proxyfactoryfactory.factory_class"] = 
    "NHibernate.ByteCode.Castle.ProxyFactoryFactory, NHibernate.ByteCode.Castle"; 

에 :

props["proxyfactory.factory_class"] = 
    "NHibernate.ByteCode.Castle.ProxyFactoryFactory, NHibernate.ByteCode.Castle"; 

프록시 팩토리 연결의 일부가 아닙니다.

+0

안녕하세요 마이클 위의 링크에서 언급 한 코드를 사용하여 고맙습니다. – jcreddy

관련 문제