public bool Gravar(Usuario usuario) { bool ok = false; #region Usar outra conexão para transações que precisam se manterem abertas, como o Gravar() varios itens de tabelas diferentes ou vários selects MySqlPersistence _localbd = new MySqlPersistence(true); // true mantem a conexao aberta #endregion try { _localbd.IniciarTransacao(); // a partir daqui, abre transação e o codigo está protegido // Mapeamento Objeto-Relacional --> transformar objeto em linha de tabela do banco string sql = @"INSERT usuario (Nome, Email, Senha) VALUES (@Nome, @Email, @Senha)" ; Dictionary <string, object> parametros = new Dictionary <string, object>(); parametros.Add("@Nome", usuario.Nome); parametros.Add("@Email", usuario.Email); parametros.Add("@Senha", usuario.Senha); int qtdeLinhas = _localbd.ExecuteNonQuery(sql, parametros); ok = qtdeLinhas > 0; // confirma transacao _localbd.TransacaoCommit(); } catch { _localbd.TransacaoRollback(); } finally { _localbd.Fechar(); } return(ok); }