/// <summary> /// 提交事务 /// </summary> public void Commit(TransactionContext context) { if (context == null || context.Transaction == null) { throw new ArgumentNullException(nameof(context)); } if (context.Status == TransactionStatus.Commited) { return; } if (context.Status != TransactionStatus.InTransaction) { throw new DatabaseException("use a already finished transactioncontenxt"); } try { IDbConnection conn = context.Transaction.Connection; _databaseEngine.Commit(context.Transaction); //context.Transaction.Commit(); context.Transaction.Dispose(); if (conn != null && conn.State != ConnectionState.Closed) { conn.Dispose(); } context.Status = TransactionStatus.Commited; } catch { context.Status = TransactionStatus.Failed; throw; } }