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