【问题标题】:How to set connection string dynamically in NHibernate如何在 NHibernate 中动态设置连接字符串
【发布时间】:2010-05-28 09:12:20
【问题描述】:

我想使用以下代码为 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**

请告诉我解决方案。

【问题讨论】:

    标签: nhibernate string connection


    【解决方案1】:

    解决方法见这里:

    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";
    

    代理工厂不是连接的一部分。

    【讨论】:

    • 嗨迈克尔,我使用了上面链接中提到的代码,并且正在工作,非常感谢。
    猜你喜欢
    • 2016-06-22
    • 1970-01-01
    • 2013-08-09
    • 1970-01-01
    • 2011-03-11
    • 1970-01-01
    • 2011-01-30
    • 2011-12-15
    • 2020-09-18
    相关资源
    最近更新 更多