Как переместить hibernate.cfg в appsettings. json - PullRequest
2 голосов
/ 09 января 2020

Для NHibernate и. NET Core, у меня есть файл hibernate.cfg.xml, определенный как:

<?xml version="1.0" encoding="utf-8" ?>
<hibernate-configuration xmlns="urn:nhibernate-configuration-2.2">
  <session-factory>
    <property name="connection.provider">NHibernate.Connection.DriverConnectionProvider</property>
    <property name="dialect">NHibernate.Dialect.MsSql2000Dialect</property>
    <property name="connection.driver_class">NHibernate.Driver.SqlClientDriver</property>
    <property name="connection.connection_string">Server=.;Database=OrmCookbook;Trusted_Connection=True;</property>

    <property name="show_sql">false</property>
  </session-factory>
</hibernate-configuration>
  1. Каков синтаксис для помещения его в мой файл appsettings.json?
  2. Каков синтаксис для загрузки указанного json файла?

Альтернативно, если возможно переместить только строку соединения в appsettings.json? Это то, что мне нужно контролировать больше всего.

1 Ответ

1 голос
/ 09 января 2020

Как вы упомянули в комментарии, конфигурация по коду также является приемлемым решением для вас. Ниже описано, как настроить фабрику сеансов NHibernate с помощью кода:

Импортировать пространства имен:

using NHibernate.Cfg;
using NHibernate.Cfg.MappingSchema;

Ниже приведен код конфигурации:

Configuration configuration = new Configuration();

configuration.SetProperty(NHibernate.Cfg.Environment.Dialect, "YourDialect");
configuration.SetProperty(NHibernate.Cfg.Environment.ConnectionString, "YourConnectionString");
configuration.SetProperty(NHibernate.Cfg.Environment.DefaultSchema, "YourDefaultSchema");
configuration.SetProperty(NHibernate.Cfg.Environment.Isolation, "ReadCommitted");
configuration.SetProperty(NHibernate.Cfg.Environment.BatchSize, "YourBatchSize");
configuration.SetProperty(NHibernate.Cfg.Environment.ShowSql, "true");
configuration.SetProperty(NHibernate.Cfg.Environment.FormatSql, "true");
configuration.AddMapping(YourHbmMappingInstance);
configuration.SessionFactory().DefaultFlushMode("YourFlushMode");

ISessionFactory sessionFactory = configuration.BuildSessionFactory();

Для AddMapping метод, вам нужно предоставить Assembly, в котором вы определили свои отображения.

Вызовите этот код один раз при запуске приложения. Для создания ISession.

необходимо поддерживать экземпляр sessionFactory в течение всего срока службы приложения. Далее, если вы хотите настроить протокол 4net для ведения журнала, см. этот ответ.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...