How to properly use a NHibernate ISession object - Session Is Closed! errors

前端 未结 4 1746
伪装坚强ぢ
伪装坚强ぢ 2021-01-04 19:23

I\'m running into issues with my ISessions in NHibernate. I keep getting \"Session Closed!\" errors. Can some one please show me the correct pattern including a definition o

4条回答
  •  无人及你
    2021-01-04 19:44

    I advice you to read the documentation of ISession on https://nhibernate.svn.sourceforge.net/svnroot/nhibernate/trunk/nhibernate/src/NHibernate/ISession.cs

    Anyway the proper way to clean up when you are finished with the session is to dispose it (or better, surround the usage with using statement). In this case, "using" closes the session and suppresses the finalizer, i.e. it prevents the session object from unnecessarily surviving the next garbage collecting and saves the memory.

    If the connection is already closed, disposing it will not throw an exception. On the other hand, closing after disposing (or after closing) throws an exception.

    The documentation recommends calling disconnect instead of closing, because this releases the connection to the connection pool. You should call Reconnect before using a disconnected session.

    For my needs, I always use "using" which calls Dispose and have never used the othe two functions.

提交回复
热议问题