Para obtener una conexión en un TransactionScope, debe especificar 'Enlist=true'
en su cadena de conexión y abrir la conexión en el alcance de ese objeto TransactionScope.
Puede usar SqlConnection.BeginTransaction
en una conexión existente.
actualización: ¿Se puede utilizar BeginTransaction
así:
using (SqlConnection connection = new SqlConnection(connectionString))
{
connection.Open();
SqlCommand command = connection.CreateCommand();
SqlTransaction transaction;
// Start a local transaction.
transaction = connection.BeginTransaction("SampleTransaction");
// Must assign both transaction object and connection
// to Command object for a pending local transaction
command.Connection = connection;
command.Transaction = transaction;
...
...
}
La cosa es que la conexión se abre antes de la creación de instancias TransactionScope; de ahí el motivo de mi pregunta. –
@Mitch, ¿la conexión.BeginTransaction ("SampleTransaction") promueve a una transacción distribuida (DTC) en cualquier escenario? Si lo hace, ¿cuáles son esos escenarios? – Baig