Соединение NHibernate 2.1.2 открывается на заводе. OpenSession ()? - PullRequest
1 голос
/ 05 июня 2011

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

var session = factory.OpenSession();

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

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 Ответ

2 голосов
/ 05 июня 2011

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

...