/// <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)); } } }
/// <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)); } }
/// <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); }
/// <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)); }