Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / LINQ и TransactionScope / 2 сообщений из 2, страница 1 из 1
09.08.2015, 23:21
    #39025860
e24
e24
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
LINQ и TransactionScope
Как правильно?

Для SQL делал так:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
SqlTransaction trans=null;
try
{
  using (trans = connection.BeginTransaction())
  {
      //...
      trans.Commit()
  }
}
catch (...)
{
  trans.Rollback();
}



Для LINQ и TransactionScope, на МСДН, примеры такие:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
try
{
  using (TransactionScope scope = new TransactionScope())
  {
    scope.Complete();
  }
}
catch (...)
{
  //...
}


А может так лучше, что бы не "зависали" транзакции:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
TransactionScope scope = null;
try
{
  using (scope = new TransactionScope())
  {
    scope.Complete();
  }
}
catch (...)
{
  scope .Dispose();
}


???
...
Рейтинг: 0 / 0
10.08.2015, 01:51
    #39025894
hVostt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
LINQ и TransactionScope
e24,

нет, не правильно, надо так:

Код: c#
1.
2.
3.
4.
for(int i = 0; i < 1000; ++i)
{
    scope.Dispose();
}



если диспоузить, то железно! одного раза, который автоматически выполняется в using, явно мало
...
Рейтинг: 0 / 0
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / LINQ и TransactionScope / 2 сообщений из 2, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]