Как установить строку подключения динамически в NHibernate - PullRequest
0 голосов
/ 28 мая 2010

Я хочу назначить строку подключения для 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. Пожалуйста, дайте мне знать решение. С уважением JCReddy

1 Ответ

0 голосов
/ 28 мая 2010

Смотрите здесь для решения:

Как загрузить настройки приложения в объект NHibernate.Cfg.Configuration?

Я не проверял это, но вы можете попробовать изменить:

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

до:

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

Прокси-сервер не является частью соединения.

...