C # e SQL Server: a inserção / atualização é realmente executada apenas na depuração

Eu tenho uma API bastante simplista para adicionar e, posteriormente, atualizar uma pequena tabela no SQL Server. Ele será inserido (ou atualizado, que exibe o mesmo comportamento estranho) quando eu entrar no meu código de acesso a dados no depurador, mas não quando eu passar pelo mesmo código. Certamente, eu perdi algo óbvio ...

int result = 0;
const string sql = "INSERT into MyProgress (ImportJobId, SiteCode, ProcessedAmount, TotalToProcess, ErrorCount, CreatedDateTime, LastModifiedDateTime) " +
                   "VALUES (@importJobId, @siteCode, @currentProgress, @totalPieces, 0, getdate(), getdate())";

using (var connection = GetSqlConnection())
using (var sqlCmd = GetSqlCommand(connection, sql))
{
    sqlCmd.Parameters.AddWithValue("@importJobId", importJobId);
    sqlCmd.Parameters.AddWithValue("@siteCode", siteCode);
    sqlCmd.Parameters.AddWithValue("@currentProgress", currentProgress);
    sqlCmd.Parameters.AddWithValue("@totalPieces", totalPieces);

    //SqlParameter outputParameter = new SqlParameter("@ID", SqlDbType.Int, 4);
    //outputParameter.Direction = ParameterDirection.InputOutput;
    //sqlCmd.Parameters.Add(outputParameter);

    sqlCmd.BeginExecuteNonQuery();
    //result = (int) (outputParameter.Value ?? -1);
}

return result;

Para os curiosos,GetSqlConnection() se parece com isso:

SqlConnection connection = new SqlConnection(_ConnectionString);
connection.Open();
return connection;

questionAnswers(2)

yourAnswerToTheQuestion