Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
O LINQ to SQL dá suporte a três modelos de transação distintos. O seguinte lista esses modelos na ordem das verificações executadas.
Transação local explícita
Quando a chamada SubmitChanges ocorre, se a propriedade Transaction estiver definida como uma transação (IDbTransaction
), a chamada SubmitChanges será executada no contexto da mesma transação.
É sua responsabilidade confirmar ou reverter a transação após a execução bem-sucedida da transação. A conexão correspondente à transação deve corresponder à conexão usada para construir o DataContext. Uma exceção será gerada se uma conexão diferente for usada.
Transação distribuível explícita
Você pode chamar APIs do LINQ to SQL (incluindo, entre outras, SubmitChanges) no escopo de uma classe Transaction ativa. LINQ to SQL detecta que a chamada está no escopo de uma transação e não cria uma nova transação. O LINQ to SQL também evita o fechamento da conexão nesse caso. Você pode fazer a consulta e executar SubmitChanges no contexto de uma transação.
Transação implícita
Quando você chama SubmitChanges, o LINQ to SQL verifica se a chamada está no escopo de um Transaction ou se a Transaction
propriedade (IDbTransaction
) está definida como uma transação local iniciada pelo usuário. Se não encontrar nenhuma transação, o LINQ to SQL iniciará uma transação local (IDbTransaction
) e a usará para executar os comandos SQL gerados. Quando todos os comandos SQL tiverem sido concluídos com êxito, o LINQ to SQL confirmará a transação local e retornará.