Соединение NHibernate 2.1.2 открыто на заводе.OpenSession()?

#nhibernate #connection #isession

#nhibernate #подключение #isession

Вопрос:

Когда я открываю сеанс с

var session = factory.OpenSession();

и проверьте сеанс.Подключение.Укажите, что оно открыто. «Соединение» имеет тип SqlConnection. Это означает, что при создании сеанса соединение открывается автоматически, чего, как я думал, с NH не происходит. Разве это не должно быть закрыто до тех пор, пока NH не определит оптимальное время для сброса? Что я делаю не так?

The hibernate.cfg.xml:

 <hibernate-configuration xmlns="urn:nhibernate-configuration-2.2">
  <session-factory>
    <property name="connection.provider">NHibernate.Connection.DriverConnectionProvider</property>
    <property name="dialect">NHibernate.Dialect.MsSql2005Dialect</property>
    <property name="connection.driver_class">NHibernate.Driver.SqlClientDriver</property>
    <property name="connection.connection_string">Data Source=.SQLEXPRESS;Initial Catalog=Test; Integrated Security=SSPI</property>
    <property name='proxyfactory.factory_class'>NHibernate.ByteCode.Castle.ProxyFactoryFactory, NHibernate.ByteCode.Castle</property>
  </session-factory>
</hibernate-configuration>
  

Ответ №1:

Нет, на самом деле происходит то, что NHibernate создает и открывает соединение при первом указании session.Connection (если у сеанса еще не было соединения, конечно)