private void Init(DataAccess.DataSource dataSourceId, bool readOnly, DataAccessHint hint) { //lock ( FlashCard.Lock ) { Log.Trace("Thread=" + Thread.CurrentThread.Name + " Mutex.WaitOne"); DataAccess.Mutex.WaitOne(); try { DataAccess.CheckStarted(); _con = DataAccess.GetConnection(dataSourceId, readOnly); if (!readOnly) { _trx = _con.BeginTransaction(); } } catch (Exception e) { Log.Trace("Thread=" + Thread.CurrentThread.Name + " Mutex.ReleaseMutex"); DataAccess.Mutex.ReleaseMutex(); Log.Error("Error instantiating DataAccessTransaction", e); throw; } } DataSourceId = dataSourceId; ReadOnly = readOnly; Hint = hint; }
/// <summary> /// /// </summary> /// <param name="readOnly"></param> public DataAccessTransaction(DataAccess.DataSource dataSourceId, bool readOnly) { Init(dataSourceId, readOnly, DataAccessHint.None); }
/// <summary> /// </summary> public DataAccessTransaction(DataAccess.DataSource dataSourceId) { Init(dataSourceId, false, DataAccessHint.None); }