Exemple #1
0
        /// <summary>
        /// Prepare a command for communicate with database.
        /// </summary>
        /// <param name="sql"></param>
        /// <param name="type"></param>
        /// <param name="parameters"></param>
        /// <returns></returns>
        protected virtual IDbCommand PrepareCommand(string sql, CommandType type, IDbDataParameter[] parameters)
        {
            IDbCommand command = _factory.CreateCommand();

            command.Connection  = this._connection;
            command.CommandText = sql;
            command.CommandType = type;
            var pas = command.Parameters;

            foreach (var p in parameters)
            {
                pas.Add(p);
            }

            var tran = LocalTransactionBlock.GetCurrentTransaction(this._connectionSchema.Database);

            if (tran != null && tran.Connection == this._connection)
            {
                command.Transaction = tran;
            }

            //if (this._transaction != null)
            //{
            //    command.Transaction = this._transaction;
            //}

            Logger.LogDbAccessed(sql, parameters, this._connectionSchema);

            return(command);
        }