2013-07-18 2 views
3

Поддерживает ли MYSQL TransactionScope без передачи объекта MySqlConnection в качестве параметра? Или это просто работает с MS SQL 2008 и выше?TransactionScope с вложенными методами - MySQL

, например:

public void Method() 
{ 
    using (var scope = new System.Transactions.TransactionScope()) 
    { 
     Delete(); 
     Insert(); 
     Update(); 

     scope.Complete(); 
    } 
} 

public void Update() 
{ 
    using(MySqlConnection conn = new MySqlConnection()) 
    { 
     // Update something in the Database 
    } 
} 

public void Insert() 
{ 
    using(MySqlConnection conn = new MySqlConnection()) 
    { 
     // Insert something in the Database 
    } 
} 

public void Delete() 
{ 
    using(MySqlConnection conn = new MySqlConnection()) 
    { 
     // Delete something from Database 
    } 
} 

или я должен сделать это с MySqlConnection объекта Конн в качестве параметра?

public void Method() 
{ 
    using (var scope = new System.Transactions.TransactionScope()) 
    { 
     using(MySqlConnection conn = new MySqlConnection()) 
     { 
      Delete(conn); 
      Insert(conn); 
      Update(conn); 
     } 

     scope.Complete(); 
    } 
} 

public void Update(MysqlConnection conn) 
{ 
    // Update something in the Database 
} 

public void Insert(MysqlConnection conn) 
{ 
    // Insert something in the Database 
} 

public void Delete(MysqlConnection conn) 
{ 
    // Delete something from Database 
} 
+0

Интересно знать результат теста без разбора соединения, второй вариант будет работать, но вы можете попробовать без отправки соединения с помощью 'cmd.Connection.EnlistTransaction (Transaction.Current);' http://stackoverflow.com/questions/1893862/Is-The-TransactionScope-объект-полностью поддерживает использующий-mysqlconnector-для-сетей – Damith

ответ

Смежные вопросы