Настройка соединения с базой данных при использовании TransactionScope - PullRequest
0 голосов
/ 27 апреля 2010

Должно ли соединение с базой данных быть установлено внутри TransactionScope?

Или я могу установить его в ctor и затем создать методы экземпляра TransactionScope?

РЕДАКТИРОВАТЬ: Например.

Public Sub New()
   Dim conn = new SqlConnection(...connection string)
Public Sub SomeClassMethod()
   using ts as new TransactionScope
      //conn has already been initialized
      //so, here you can set commands, ExecuteDataSet, etc.

против

Public Sub New()
   //nothing here
Public Sub SomeClassMethod()    
   using ts as new TransactionScope
      conn = new SqlConnection(...connection string)
      set commands, ExecuteDataSet, etc.

вопрос в том, нужно ли вам создавать соединение с базой данных после создания TransactionScope или это можно сделать раньше?

1 Ответ

0 голосов
/ 30 апреля 2010

Если вы хотите, чтобы SqlConnection находился в транзакции, вам нужно создать его в TransactionScope.

using(TransactionScope scope = new TransactionScope())
{
  SqlConnection x = new SqlConnestion("....");
  x.Open();
  ....your code... SQlCommands etc....
  x.Close();
  scope.Complete();
}
...