示例#1
0
 public void Rollback()
 {
     if (Transaction != null)
     {
         Transaction.Rollback();
         Transaction.Dispose();
         State = DbContextState.Rollback;
     }
 }
示例#2
0
 public void Commit()
 {
     if (Transaction != null)
     {
         Transaction.Commit();
         Transaction.Dispose();
         State = DbContextState.Commit;
     }
 }
示例#3
0
 public void Rollback()
 {
     try
     {
         UnitOfWork.Rollback();
         State = DbContextState.RolledBack;
     }
     finally
     {
         Reset();
     }
 }
示例#4
0
 public void Open(bool beginTransaction, IsolationLevel?level = null)
 {
     if (!beginTransaction)
     {
         Connection.Open();
     }
     else
     {
         Connection.Open();
         Transaction = level == null?Connection.BeginTransaction() : Connection.BeginTransaction(level.Value);
     }
     State = DbContextState.Open;
 }
示例#5
0
 public async Task OpenAsync(bool beginTransaction, IsolationLevel?level = null)
 {
     State = DbContextState.Open;
     if (!(Connection is DbConnection))
     {
         throw new InvalidOperationException("Async operations require use of a DbConnection or an already-open IDbConnection");
     }
     if (!beginTransaction)
     {
         await(Connection as DbConnection).OpenAsync();
     }
     else
     {
         await(Connection as DbConnection).OpenAsync();
         Transaction = level == null?Connection.BeginTransaction() : Connection.BeginTransaction(level.Value);
     }
 }
示例#6
0
 public void Commit()
 {
     try
     {
         UnitOfWork.Commit();
         State = DbContextState.Comitted;
     }
     catch
     {
         Rollback();
         throw;
     }
     finally
     {
         Reset();
     }
 }
示例#7
0
 public DbContext(IDbConnection connection, DatasourceType sourceType)
 {
     Connection = connection;
     SourceType = sourceType;
     State      = DbContextState.Closed;
 }
示例#8
0
 public void Close()
 {
     Connection?.Close();
     State = DbContextState.Closed;
 }
示例#9
0
 private IDbConnection OpenConnection()
 {
     State = DbContextState.Open;
     return(_connectionFactory.CreateOpenConnection());
 }