2011-01-19 2 views

Respuesta

20

A partir del código Nhibernate Fuente:

private void Dispose(bool isDisposing) 
{ 
    using (new SessionIdLoggingContext(base.SessionId)) 
    { 
     if (!base.IsAlreadyDisposed) 
     { 
      log.Debug(string.Format("[session-id={0}] executing real Dispose({1})", base.SessionId, isDisposing)); 
      if (!(!isDisposing || base.IsClosed)) 
      { 
       this.Close(); 
      } 
      base.IsAlreadyDisposed = true; 
      GC.SuppressFinalize(this); 
     } 
    } 
} 

método le disponen llama Close(). Si llama a los métodos Close() o Dispose(), se cerrará la sesión y no podrá trabajar más con ella.

7

La llamada session.Close() cerrará la sesión pero no desechará el objeto.

Llamar a session.Dispose() (generalmente mediante el uso de un bloque de uso) cerrará la sesión si está abierta, así como también realizará las operaciones adicionales de Dispose().