/// <summary> /// Updates or inserts an entity and returns true if successful. /// </summary> /// <typeparam name="T">The type of entity to update or insert.</typeparam> /// <param name="entityToUpsert">The Entity to update or insert.</param> /// <param name="columnsToUpdate">The columns to update if the record exists.</param> /// <param name="insertAction">A callback function before the record is inserted.</param> /// <param name="updateAction">A callback function before the record is updated.</param> /// <returns> /// True if the record is updated or inserted. /// </returns> public bool Upsert <T>(T entityToUpsert, IEnumerable <string> columnsToUpdate, Action <T> insertAction, Action <T> updateAction) where T : class => ExecuteInternal(() => SharedConnection.Upsert(entityToUpsert, columnsToUpdate, insertAction, updateAction, _transaction, OneTimeCommandTimeout ?? CommandTimeout));
/// <summary> /// Updates or inserts an entity and returns true if successful. /// </summary> /// <typeparam name="T">The type of entity to update or insert.</typeparam> /// <param name="entityToUpsert">The Entity to update or insert.</param> /// <returns> /// True if the record is updated or inserted. /// </returns> public bool Upsert <T>(T entityToUpsert) where T : class => ExecuteInternal(() => SharedConnection.Upsert(entityToUpsert, _transaction, OneTimeCommandTimeout ?? CommandTimeout));