En dias pasados me preguntaron como ejecutar transacciones locales usando Enterprise Library 2.0 Data Access Application Block y pues aqui dejo el codigo de como hacerlo. Sumamente sencillo en realidad no es nada distinto de lo normal en ADO.NET, es el mismo concepto y modelo. Chequen..
1: Database db = DatabaseFactory.CreateDatabase();3: DbCommand command1 = db.GetSqlStringCommand(“UPDATE Products SET UnitPrice = UnitPrice + 1”);
4: DbCommand command2 = db.GetSqlStringCommand(“INSERT INTO Categories(CategoryName) VALUES (‘TEST’)”);
5:
6: using (DbConnection cnn = db.CreateConnection())
7: {
8: cnn.Open();
9: DbTransaction tran = cnn.BeginTransaction();
10:
11: try
12: {
13: db.ExecuteNonQuery(command1, tran);
14: db.ExecuteNonQuery(command2, tran);
15: tran.Commit();
16: }
17: catch(Exception ex) { tran.Rollback(); }
18: finally { cnn.Close(); }
19: }
En un futuro post voy a escribir sobre como implementar transacciones distribuidas sobre Enterprise Library 2.0 Data Access Application Block usando el objeto TransactionScope de ADO.NET 2.0