Beispiel #1
0
        /// <summary>
        /// The execute scalar.
        /// </summary>
        /// <param name="cmd">
        /// The cmd. 
        /// </param>
        /// <param name="unitOfWork">
        /// The unit of work. 
        /// </param>
        /// <returns>
        /// The execute scalar. 
        /// </returns>
        public virtual object ExecuteScalar([NotNull] DbCommand cmd, [CanBeNull] IDbUnitOfWork unitOfWork = null)
        {
            CodeContracts.ArgumentNotNull(cmd, "cmd");

            using (var qc = new QueryCounter(cmd.CommandText))
            {
                object results = null;

                if (unitOfWork == null)
                {
                    using (var connection = this.CreateConnectionOpen())
                    {
                        // get an open connection
                        cmd.Connection = connection;
                        results = cmd.ExecuteScalar();
                    }
                }
                else
                {
                    unitOfWork.Setup(cmd);

                    results = cmd.ExecuteScalar();
                }

                return results == DBNull.Value ? null : results;
            }
        }
Beispiel #2
0
        public virtual DataSet GetDataset([NotNull] DbCommand cmd, [CanBeNull] IDbUnitOfWork unitOfWork = null)
        {
            CodeContracts.ArgumentNotNull(cmd, "cmd");

            using (var qc = new QueryCounter(cmd.CommandText))
            {
                return this.GetDatasetBasic(cmd, unitOfWork);
            }
        }
Beispiel #3
0
        /// <summary>
        /// The execute non query.
        /// </summary>
        /// <param name="cmd">
        /// The cmd. 
        /// </param>
        /// <param name="unitOfWork">
        /// The unit of work. 
        /// </param>
        public virtual void ExecuteNonQuery([NotNull] DbCommand cmd, [CanBeNull] IDbUnitOfWork unitOfWork = null)
        {
            CodeContracts.ArgumentNotNull(cmd, "cmd");

            using (var qc = new QueryCounter(cmd.CommandText))
            {
                if (unitOfWork == null)
                {
                    using (var connection = this.CreateConnectionOpen())
                    {
                        // get an open connection
                        cmd.Connection = connection;
                        cmd.ExecuteNonQuery();
                    }
                }
                else
                {
                    unitOfWork.Setup(cmd);

                    cmd.ExecuteNonQuery();
                }
            }
        }