Partekatu bidez


Soporte de transacciones

LINQ to SQL admite tres modelos de transacción distintos. A continuación se enumeran estos modelos en el orden de las comprobaciones realizadas.

Transacción local explícita

Cuando se llama a SubmitChanges, si la propiedad Transaction está establecida como una transacción (IDbTransaction), la llamada SubmitChanges se ejecuta en el contexto de la misma transacción.

Es su responsabilidad confirmar o revertir la transacción después de la ejecución correcta de la transacción. La conexión correspondiente a la transacción debe coincidir con la conexión utilizada para construir el DataContext. Se produce una excepción si se usa una conexión diferente.

Transacción distribuible explícita

Puede llamar a las API de LINQ to SQL (incluidas, entre otras, SubmitChanges) en el ámbito de un objeto Transaction activo. LINQ to SQL detecta que la llamada está en el ámbito de una transacción y no crea una nueva transacción. LINQ to SQL también evita cerrar la conexión en este caso. Puede ejecutar consultas y el método SubmitChanges en el contexto de este tipo de transacción.

Transacción implícita

Cuando se llama a SubmitChanges, LINQ to SQL comprueba si la llamada está en el ámbito de un Transaction o si la propiedad Transaction (IDbTransaction) está configurada para una transacción local iniciada por el usuario. Si no encuentra ninguna transacción, LINQ to SQL inicia una transacción local (IDbTransaction) y la usa para ejecutar los comandos SQL generados. Cuando todos los comandos SQL se hayan completado correctamente, LINQ to SQL confirma la transacción local y devuelve.

Consulte también