Example #1
0
 /// <summary>
 /// 关闭数据库连接
 /// </summary>
 /// <param name="connection"></param>
 /// <param name="IsReadConnection">是否读链接 默认不是</param>
 protected void CloseConnection(IDbConnection connection)
 {
     if (!DbTransactionContext.HasTransaction(connection.Database))
     {
         connection.Close();
     }
 }
 public void Dispose()
 {
     DbTransactionContext.Unbind();
     _transaction.Dispose();
     _transaction = null;
     _connection.Dispose();
 }
        public DbUnitOfWork(IDbConnection connection, IsolationLevel isolationLevel)
        {
            _connection = connection ?? throw new ArgumentNullException(nameof(connection));

            _connection = connection;
            _connection.Open();
            _transaction = _connection.BeginTransaction(isolationLevel);

            DbTransactionContext.Bind(_transaction);
        }
        public static DbTransactionContext GetLoggedDbTransaction(DbTransaction transaction, MutableInterceptionContext interceptionContext)
        {
            var context = new DbTransactionContext
            {
                IsAsync    = interceptionContext.IsAsync,
                IsCanceled = interceptionContext.TaskStatus.HasFlag(TaskStatus.Canceled),
                Exception  = interceptionContext.OriginalException ?? interceptionContext.Exception
            };

            setBaseInfo(interceptionContext, context);
            context.TransactionId = UniqueIdExtensions <DbTransaction> .GetUniqueId(transaction).ToInt();

            return(context);
        }
        public static DbTransactionContext GetLoggedDbTransaction(DbTransaction transaction, int connectionId)
        {
            var context = new DbTransactionContext
            {
                IsAsync           = false,
                IsCanceled        = false,
                Exception         = null,
                ObjectContextId   = SessionIdLoggingContext.SessionId.GetUniqueId(),
                ObjectContextName = SessionId,
                ConnectionId      = connectionId,
                TransactionId     = UniqueIdExtensions <DbTransaction> .GetUniqueId(transaction).ToInt()
            };

            return(context);
        }
Example #6
0
        public MyTransaction OpenTransaction()
        {
            MyTransaction transaction = null;

            if (!DbTransactionContext.HasTransaction(db.Database))
            {
                transaction = new MyTransaction(db.BeginTransaction());
                DbTransactionContext.AddTransaction(db.Database, transaction);
            }
            else
            {
                transaction = DbTransactionContext.GetTransaction(db.Database);
            }
            transaction.AddCount();
            return(transaction);
        }
Example #7
0
 protected TestDb(ContextScope scope, DbTransactionContext dbTran) : base(scope, dbTran)
 {
 }