2010-05-28 72 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未配置。 使用其中一個可用的NHibernate.ByteCode提供程序初始化會話工廠配置部分的'proxyfactory.factory_class'屬性。 例子: 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"; 

Proxyfactory不是連接的一部分。

+0

嗨邁克爾 我使用了上述鏈接中提到的代碼,並且正在工作,非常感謝。 – jcreddy 2010-05-31 04:46:04

相關問題