コード例 #1
0
ファイル: DBTransaction.cs プロジェクト: soroush01110011/MVP
        /// <summary>
        /// Создает текущую транзакцию и добавляет ее в стэк отдельно запущенных транзакций.
        /// </summary>
        /// <param name="context"></param>
        /// <returns></returns>
        internal static DBTransaction CreateCurrent(DBConnectionContext context)
        {
            if (context == null)
            {
                throw new ArgumentNullException("context");
            }

            //получаем стэк транзакций.
            Stack <DBTransaction> transactionsStack = DBTransaction.TransactionsStack;

            //создаем транзакцию.
            DBTransaction transaction = new DBTransaction(context);

            //убираем признак текущей транзакции с последней текущей транзакции, расположенной в стэке.
            if (transactionsStack.Count > 0)
            {
                DBTransaction currentTransaction = DBTransaction.EnsureCurrent(transactionsStack.Peek());
                currentTransaction.SetIsCurrent(false);
            }

            //добавляем транзакцию в стэк и назначаем текущую транзакцию.
            transactionsStack.Push(transaction);

            //возвращаем созданную новую текущую транзакцию.
            return(transaction);
        }
コード例 #2
0
ファイル: DBTransaction.cs プロジェクト: soroush01110011/MVP
        /// <summary>
        /// Создает экземпляр транзакции.
        /// </summary>
        internal DBTransaction(DBConnectionContext context)
        {
            if (context == null)
            {
                throw new ArgumentNullException("context");
            }
            this.Context = context;

            //при создании транзакции, помечаем её как текущую.
            this.SetIsCurrent(true);
        }
コード例 #3
0
        /// <summary>
        /// Создает экземпляр DBTransactionScope.
        /// </summary>
        internal DBTransactionScope(bool createNew, DBConnectionContext context)
        {
            if (context == null)
            {
                throw new ArgumentNullException("context");
            }

            //создаём текущую транзакцию при необходимости.
            if (!DBTransaction.HasCurrent || createNew)
            {
                this.OwnedTransaction = DBTransaction.CreateCurrent(context);
            }

            this.Context = context;
        }
コード例 #4
0
        /// <summary>
        /// К-тор.
        /// </summary>
        /// <param name="databaseServerName">Название экземпляра сервера базы данных.</param>
        /// <param name="databaseName">Название базы данных.</param>
        /// <param name="context">Контекст подключений к базам данных.</param>
        internal DBConnection(string databaseServerName, string databaseName, DBConnectionContext context)
        {
            if (string.IsNullOrEmpty(databaseServerName))
            {
                throw new ArgumentNullException("databaseServerName");
            }

            if (string.IsNullOrEmpty(databaseName))
            {
                throw new ArgumentNullException("databaseName");
            }

            this.DatabaseServerName = databaseServerName;
            this.DatabaseName       = databaseName;
            this.Context            = context;
        }