Não entendi bem o que seria esse negócio de transação. É o método que libera os comandos para o banco de dados?
Não entendi bem o que seria esse negócio de transação. É o método que libera os comandos para o banco de dados?
Oi Leonardo tudo bem?
Segundo a Wikipédia:
Transação em banco de dados é um conjunto de procedimentos, executados num banco de dados, que o usuário percebe como uma única ação.
Ou seja quando escrevemos um novo post aqui no fórum o banco de dados faz algumas coisas (pelo menos, porque não conheço as tabelas do banco de dados rsrsrs): escreve uma resposta no fórum, escreve no seu histórico de aluno a ação que escreveu esta resposta, e soma na sua pontuação mais 200 pontos.
Tudo isso foi uma transação no banco de dados. Então não é só o método que dá o comando para o banco de dados fazer essas coisas, mas tudo que o programa fez nesta hora está dentro da transação.
Para saber mais: https://pt.wikipedia.org/wiki/Transa%C3%A7%C3%A3o_em_base_de_dados
Espero ter ajudado!!!
Leonardo, complementando a resposta do André: quando chamamos o método SaveChanges()
do contexto , internamente uma transação é criada, os comandos SQL são enviados pela conexão e, se tudo correr bem, a transação é fechada com sucesso (costumamos dizer que é feito um COMMIT na transação).
Se algum comando SQL der erro, o contexto vai fechar a conexão cancelando tudo o que foi executado desde a abertura da transação (costumamos dizer que é feito um ROLLBACK nela).
Abraços!