Как загрузить настройки приложения в объект NHibernate.Cfg.Configuration
с помощью System.Configuration.ConfigurationManager
из App.config?
Как загрузить настройки приложения в объект NHibernate.Cfg.Configuration?
Ответы (2)
app.config:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<connectionStrings>
<add name="Northwind" connectionString=
"Data Source=(local);Initial Catalog=Northwind;Trusted_Connection=True;>
</connectionStrings>
</configuration>
Код C #:
string connectionString = System.Configuration.ConfigurationManager
.ConnectionStrings["Northwind"].ToString();
NHibernate.Cfg.Configuration nHibernateConfiguration =
new NHibernate.Cfg.Configuration();
nHibernateConfiguration.SetProperty(
NHibernate.Cfg.Environment.ProxyFactoryFactoryClass,
typeof(NHibernate.ByteCode.Castle.ProxyFactoryFactory).AssemblyQualifiedName);
nHibernateConfiguration.SetProperty(
NHibernate.Cfg.Environment.Dialect,
typeof(NHibernate.Dialect.MsSql2005Dialect).AssemblyQualifiedName);
nHibernateConfiguration.SetProperty(
NHibernate.Cfg.Environment.ConnectionString, connectionString);
nHibernateConfiguration.SetProperty(
NHibernate.Cfg.Environment.FormatSql, "true");
nHibernateConfiguration.AddAssembly(Assembly.GetCallingAssembly());
ISessionFactory oneISessionFactory = nHibernateConfiguration
.BuildSessionFactory();
person
Michael Maddox
schedule
01.01.2010
Вместо того, чтобы вручную получать значение из диспетчера конфигурации, попробуйте установить
connection_string_name
. См. Как настроить NHibernate для использования строки подключения из ‹ConnectionStrings› раздел конфигурации и ответ @ LachlanRoche.
- person Joel Purra; 06.04.2012
@Joel: Вы читали вопрос, прежде чем проголосовать против меня? Он специально вызывает System.Configuration.ConfigurationManager. Ответ Лахлана полезен, но он не отвечает на заданный вопрос.
- person Michael Maddox; 06.04.2012
Учитывая, что NHibernate также использует
ConfigurationManager
, это не очень (кросс-проектный) DRY, чтобы переписать ту же часть функциональности.
- person Joel Purra; 06.04.2012
Конфигурацию гибернации также можно переместить в app.config, что упрощает код запуска. См. Раздел XML-файл конфигурации в справочном руководстве NHibernate.
Configuration cfg = new NHibernate.Cfg.Configuration();
ISessionFactory sf = cfg.Configure().BuildSessionFactory();
И в app.config:
<configuration>
<configSections>
<section name="hibernate-configuration" type="NHibernate.Cfg.ConfigurationSectionHandler, NHibernate" />
</configSections>
<hibernate-configuration xmlns="urn:nhibernate-configuration-2.2">
<session-factory>
<property name="connection.provider">NHibernate.Connection.DriverConnectionProvider</property>
<property name="connection.dialect">NHibernate.Dialect.MsSql2005Dialect</property>
<property name="connection.connection_string_name">Northwind</property>
<property name="proxyfactory.factory_class">NHibernate.ByteCode.LinFu.ProxyFactoryFactory, NHibernate.ByteCode.LinFu</property>
<mapping assembly="assemblyname" />
</session-factory>
</hibernate-configuration>
<connectionStrings>
<add name="Northwind" connectionString="Data Source=(local);Initial Catalog=Northwind;Trusted_Connection=True;>
</connectionStrings>
</configuration>
person
Lachlan Roche
schedule
18.02.2010
xmlns = urn: nhibernate-configuration-2.2 в ‹hibernate-configuration› очень важен. У меня его не было, и я продолжал получать ошибку. Спасибо @Lachlan_Roche
- person Brij; 26.01.2018