Пример #1
0
 /// <summary>
 /// Initializes a new instance of the <see cref="BasicRepository{T}"/> class.
 /// </summary>
 /// <param name="dbFunction">
 /// The db function.
 /// </param>
 /// <param name="dbAccess">
 /// The db Access.
 /// </param>
 /// <param name="raiseEvent">
 /// The raise Event.
 /// </param>
 /// <param name="haveBoardId">
 /// The have Board Id.
 /// </param>
 public BasicRepository(IDbFunction dbFunction, IDbAccessV2 dbAccess, IRaiseEvent raiseEvent, IHaveBoardID haveBoardId)
 {
     this.DbFunction = dbFunction;
     this.DbAccess   = dbAccess;
     this.DbEvent    = raiseEvent;
     this.BoardID    = haveBoardId.BoardID;
 }
Пример #2
0
        /// <summary>
        /// Insert the entity using the model provided.
        /// </summary>
        /// <param name="dbAccess">
        /// The db access.
        /// </param>
        /// <param name="insert">
        /// The insert.
        /// </param>
        /// <param name="transaction">
        /// The transaction.
        /// </param>
        /// <returns>
        /// The <see cref="int"/>.
        /// </returns>
        public static int Insert <T>([NotNull] this IDbAccessV2 dbAccess, [NotNull] T insert, [CanBeNull] IDbTransaction transaction = null)
            where T : IEntity
        {
            CodeContracts.ArgumentNotNull(dbAccess, "dbAccess");

            if (transaction != null && transaction.Connection != null)
            {
                using (var command = OrmLiteConfig.DialectProvider.CreateParameterizedInsertStatement(insert, transaction.Connection))
                {
                    command.Populate(transaction);
                    dbAccess.ExecuteNonQuery(command, transaction);

                    return((int)OrmLiteConfig.DialectProvider.GetLastInsertId(command));
                }
            }

            // no transaction
            using (var connection = dbAccess.CreateConnectionOpen())
            {
                using (var command = OrmLiteConfig.DialectProvider.CreateParameterizedInsertStatement(insert, connection))
                {
                    command.Connection = connection;
                    dbAccess.ExecuteNonQuery(command, transaction);

                    return((int)OrmLiteConfig.DialectProvider.GetLastInsertId(command));
                }
            }
        }
Пример #3
0
        /// <summary>
        /// The execute scalar.
        /// </summary>
        /// <param name="dbAccess">
        /// The db access.
        /// </param>
        /// <param name="cmd">
        /// The cmd.
        /// </param>
        /// <param name="dbTransaction">
        /// The db Transaction.
        /// </param>
        /// <returns>
        /// The execute scalar.
        /// </returns>
        public static object ExecuteScalar(
            [NotNull] this IDbAccessV2 dbAccess, [NotNull] IDbCommand cmd, [CanBeNull] IDbTransaction dbTransaction = null)
        {
            CodeContracts.ArgumentNotNull(dbAccess, "dbAccess");
            CodeContracts.ArgumentNotNull(cmd, "cmd");

            return(dbAccess.Execute((c) => c.ExecuteScalar(), cmd, dbTransaction));
        }
Пример #4
0
        /// <summary>
        /// The get reader.
        /// </summary>
        /// <param name="dbAccess">
        /// The db access.
        /// </param>
        /// <param name="cmd">
        /// The cmd.
        /// </param>
        /// <param name="dbTransaction">
        /// The db transaction.
        /// </param>
        /// <returns>
        /// The <see cref="IDataReader"/> .
        /// </returns>
        public static IDataReader GetReader([NotNull] this IDbAccessV2 dbAccess, [NotNull] IDbCommand cmd, [NotNull] IDbTransaction dbTransaction)
        {
            CodeContracts.ArgumentNotNull(dbAccess, "dbAccess");
            CodeContracts.ArgumentNotNull(cmd, "cmd");
            CodeContracts.ArgumentNotNull(dbTransaction, "dbTransaction");

            return(dbAccess.Execute((c) => c.ExecuteReader(), cmd, dbTransaction));
        }
Пример #5
0
        /// <summary>
        /// The get data.
        /// </summary>
        /// <param name="dbAccess">
        /// The db access.
        /// </param>
        /// <param name="cmd">
        /// The cmd.
        /// </param>
        /// <param name="dbTransaction">
        /// </param>
        /// <returns>
        /// The <see cref="DataTable"/> .
        /// </returns>
        public static DataTable GetData(
            [NotNull] this IDbAccessV2 dbAccess, [NotNull] IDbCommand cmd, [CanBeNull] IDbTransaction dbTransaction = null)
        {
            CodeContracts.ArgumentNotNull(dbAccess, "dbAccess");
            CodeContracts.ArgumentNotNull(cmd, "cmd");

            return(dbAccess.GetDataset(cmd, dbTransaction).Tables[0]);
        }
Пример #6
0
        /// <summary>
        /// The run.
        /// </summary>
        /// <param name="dbAccess">
        /// The db access.
        /// </param>
        /// <param name="runFunc">
        /// The run func.
        /// </param>
        /// <typeparam name="T">
        /// </typeparam>
        /// <returns>
        /// The <see cref="T"/> .
        /// </returns>
        public static T Run <T>([NotNull] this IDbAccessV2 dbAccess, Func <IDbConnection, T> runFunc)
        {
            CodeContracts.ArgumentNotNull(dbAccess, "dbAccess");
            CodeContracts.ArgumentNotNull(runFunc, "runFunc");

            using (var connection = dbAccess.CreateConnectionOpen())
            {
                return(runFunc(connection));
            }
        }
Пример #7
0
        public static DbConnection CreateConnection([NotNull] this IDbAccessV2 dbAccess)
        {
            CodeContracts.ArgumentNotNull(dbAccess, "dbAccess");

            var connection = dbAccess.DbProviderFactory.CreateConnection();

            connection.ConnectionString = dbAccess.ConnectionString;

            return(connection);
        }
Пример #8
0
        /// <summary>
        /// The update.
        /// </summary>
        /// <param name="dbAccess">
        /// The db access.
        /// </param>
        /// <param name="update">
        /// The update.
        /// </param>
        /// <param name="transaction">
        /// The transaction.
        /// </param>
        /// <typeparam name="T">
        /// </typeparam>
        /// <returns>
        /// The <see cref="int"/>.
        /// </returns>
        public static int Update <T>([NotNull] this IDbAccessV2 dbAccess, [NotNull] T update, [CanBeNull] IDbTransaction transaction = null)
            where T : IEntity
        {
            CodeContracts.ArgumentNotNull(dbAccess, "dbAccess");

            using (var connection = dbAccess.CreateConnection())
            {
                using (var command = OrmLiteConfig.DialectProvider.CreateParameterizedUpdateStatement(update, connection))
                {
                    return(dbAccess.ExecuteNonQuery(command, transaction));
                }
            }
        }
Пример #9
0
        public static DbConnection CreateConnectionOpen([NotNull] this IDbAccessV2 dbAccess)
        {
            CodeContracts.ArgumentNotNull(dbAccess, "dbAccess");

            var connection = dbAccess.CreateConnection();

            if (connection.State != ConnectionState.Open)
            {
                // open it up...
                connection.Open();
            }

            return(connection);
        }
Пример #10
0
        /// <summary>
        /// The get dataset.
        /// </summary>
        /// <param name="dbAccess">
        /// The db access.
        /// </param>
        /// <param name="cmd">
        /// The cmd.
        /// </param>
        /// <param name="dbTransaction">
        /// </param>
        /// <returns>
        /// The <see cref="DataSet"/> .
        /// </returns>
        public static DataSet GetDataset([NotNull] this IDbAccessV2 dbAccess, [NotNull] IDbCommand cmd, [CanBeNull] IDbTransaction dbTransaction = null)
        {
            CodeContracts.ArgumentNotNull(dbAccess, "dbAccess");
            CodeContracts.ArgumentNotNull(cmd, "cmd");

            return(dbAccess.Execute(
                       (c) =>
            {
                var ds = new DataSet();

                IDbDataAdapter dataAdapter = dbAccess.DbProviderFactory.CreateDataAdapter();

                if (dataAdapter != null)
                {
                    dataAdapter.SelectCommand = cmd;
                    dataAdapter.Fill(ds);
                }

                return ds;
            },
                       cmd,
                       dbTransaction));
        }
Пример #11
0
        /// <summary>
        /// Test the DB Connection.
        /// </summary>
        /// <param name="dbAccess">
        /// The db Access.
        /// </param>
        /// <param name="exceptionMessage">
        /// outbound ExceptionMessage
        /// </param>
        /// <returns>
        /// true if successfully connected
        /// </returns>
        public static bool TestConnection([NotNull] this IDbAccessV2 dbAccess, [NotNull] out string exceptionMessage)
        {
            exceptionMessage = string.Empty;
            bool success = false;

            try
            {
                using (var connection = dbAccess.CreateConnectionOpen())
                {
                    // we're connected!
                    var conn = connection;
                }

                // success
                success = true;
            }
            catch (DbException x)
            {
                // unable to connect...
                exceptionMessage = x.Message;
            }

            return(success);
        }
Пример #12
0
 /// <summary>
 /// Initializes a new instance of the <see cref="InitDatabaseProviderEvent"/> class.
 /// </summary>
 /// <param name="providerName">
 /// The provider name.
 /// </param>
 /// <param name="dbAccess">
 /// The db access.
 /// </param>
 public InitDatabaseProviderEvent(string providerName, IDbAccessV2 dbAccess)
 {
     this.ProviderName = providerName;
     this.DbAccess     = dbAccess;
 }
Пример #13
0
 /// <summary>
 /// Initializes a new instance of the <see cref="BaseMsSqlFunction"/> class.
 /// </summary>
 /// <param name="dbAccess">
 /// The db access.
 /// </param>
 public BaseMsSqlFunction([NotNull] IDbAccessV2 dbAccess)
 {
     this.DbAccess = dbAccess;
 }
Пример #14
0
 /// <summary>
 /// The get table.
 /// </summary>
 /// <param name="dbAccess">
 /// The db access.
 /// </param>
 /// <typeparam name="T">
 /// </typeparam>
 /// <returns>
 /// The <see cref="string"/>.
 /// </returns>
 public static string GetTableName <T>(this IDbAccessV2 dbAccess)
 {
     return(OrmLiteConfig.DialectProvider.GetQuotedTableName(ModelDefinition <T> .Definition));
 }
Пример #15
0
 /// <summary>
 /// Initializes a new instance of the <see cref="InitDatabaseProviderEvent"/> class.
 /// </summary>
 /// <param name="providerName">
 /// The provider name.
 /// </param>
 /// <param name="dbAccess">
 /// The db access.
 /// </param>
 public InitDatabaseProviderEvent(string providerName, IDbAccessV2 dbAccess)
 {
     this.ProviderName = providerName;
     this.DbAccess = dbAccess;
 }
Пример #16
0
 /// <summary>
 /// Initializes a new instance of the <see cref="MsSqlGetStatsFunction"/> class.
 /// </summary>
 /// <param name="dbAccess">
 /// The db access.
 /// </param>
 public MsSqlGetStatsFunction([NotNull] IDbAccessV2 dbAccess)
     : base(dbAccess)
 {
 }
Пример #17
0
        /// <summary>
        /// The begin transaction.
        /// </summary>
        /// <param name="dbAccess">
        /// The db access.
        /// </param>
        /// <param name="isolationLevel">
        /// The isolation level.
        /// </param>
        /// <returns>
        /// The <see cref="IDbTransaction"/> .
        /// </returns>
        public static IDbTransaction BeginTransaction([NotNull] this IDbAccessV2 dbAccess, IsolationLevel isolationLevel = IsolationLevel.ReadUncommitted)
        {
            CodeContracts.ArgumentNotNull(dbAccess, "dbAccess");

            return(dbAccess.CreateConnectionOpen().BeginTransaction(isolationLevel));
        }