/// <summary> /// Gets a session with or without an interceptor. This method is not called directly; instead, /// it gets invoked from other public methods. /// </summary> private ISession GetSessionFrom(string sessionFactoryConfigPath, IInterceptor interceptor) { ISession session = ContextSessions.ContainsKey(sessionFactoryConfigPath) ? ContextSessions[sessionFactoryConfigPath] : null; if (session == null) { if (interceptor != null) { session = GetSessionFactoryFor(sessionFactoryConfigPath).OpenSession(interceptor); } else { session = GetSessionFactoryFor(sessionFactoryConfigPath).OpenSession(); } ContextSessions[sessionFactoryConfigPath] = session; } if (session == null) { throw new ApplicationException("NHibernate session was null"); } return(session); }
/// <summary> /// Chiude ed esegue il dispose di Transizioni e Sessioni /// </summary> /// <remarks>Esegue il rollback delle eventuali transazioni aperte</remarks> public void CloseTransactionAndSessions() { if (ContextTransactions != null && ContextTransactions.Count > 0) { foreach (ITransaction trans in ContextTransactions.Values) { if (trans.IsActive) { trans.Rollback(); } ((IDisposable)trans).Dispose(); } ContextTransactions.Clear(); } if (ContextSessions != null && ContextSessions.Count > 0) { foreach (ISession session in ContextSessions.Values) { if (session.IsOpen) { session.Close(); } //((IDisposable)session).Dispose(); } ContextSessions.Clear(); } }
public void CloseSessionOn(string sessionFactoryName) { ISession session = (ISession)ContextSessions[sessionFactoryName]; try { if (session != null && session.IsOpen) { session.Flush(); } } catch { } finally { if (session != null && session.IsOpen) { session.Clear(); session.Close(); session.Dispose(); } ContextSessions[sessionFactoryName] = null; ContextSessions.Remove(sessionFactoryName); } }
/// <summary> /// Flushes anything left in the session and closes the connection. /// </summary> public void CloseSessionOn(string sessionFactoryConfigPath) { ISession session = (ISession)ContextSessions[sessionFactoryConfigPath]; if (session != null && session.IsOpen) { session.Flush(); session.Close(); } ContextSessions.Remove(sessionFactoryConfigPath); }
/// <summary> /// Flushes anything left in the session and closes the connection. /// </summary> public void CloseSessionOn(string contextName) { ISession session = (ISession)ContextSessions[contextName]; if (session != null && session.IsOpen) { session.Flush(); session.Close(); } ContextSessions.Remove(contextName); }
/// <summary> /// Flushes anything left in the session and closes the connection. /// </summary> public void CloseSession(string sessionFactoryConfigPath) { ISession session = ContextSessions.ContainsKey(sessionFactoryConfigPath) ? ContextSessions[sessionFactoryConfigPath] : null; if (session != null && session.IsOpen) { session.Flush(); session.Close(); } ContextSessions.Remove(sessionFactoryConfigPath); }