public static void ShareDbConnection(IDbSessionFactory fact, Action act) { if (DbSession.Current != null) { act(); } else { using (var ses = fact.OpenSession(MessageBusContext.ReceivingConnection)) { DbSession.Current = ses; act(); DbSession.Current = null; } } }
public static void InDbTransaction(IDbSessionFactory factory, Action <DbSession> act) { if (DbSession.Current != null) { act(DbSession.Current); } else { var dbs = factory.OpenSession(MessageBusContext.ReceivingConnection); try { DbSession.Current = dbs; act(dbs); } finally { DbSession.Current = null; dbs.Dispose(); } } }
public static void ShareDbConnection(IDbSessionFactory fact, Action act) { if (DbSession.Current != null) { act(); } else { var ses = fact.OpenSession(MessageBusContext.ReceivingConnection); try { DbSession.Current = ses; act(); } finally { var s = DbSession.Current; DbSession.Current = null; Debug.Assert(s == ses); s.Dispose(); } } }