Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
O LINQ to SQL suporta três modelos de transação distintos. A seguir estão listados esses modelos na ordem das verificações realizadas.
Transação local explícita
Quando SubmitChanges é chamada, se a Transaction propriedade é definida como uma transação (IDbTransaction), a SubmitChanges chamada é 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 é lançada se uma conexão diferente for usada.
Transação distribuível explícita
Você pode chamar LINQ to SQL APIs (inclusive, mas não se limitando a SubmitChanges) no âmbito de um Transaction ativo. O LINQ to SQL deteta que a chamada está no escopo de uma transação e não cria uma nova transação. LINQ to SQL também evita fechar a conexão neste caso. Você pode executar consultas e SubmitChanges execuções no contexto de tal 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 propriedade Transaction (IDbTransaction) está definida para 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á.