Общие сведения о TransactionScopeOptions: RequiresNew = Suppress + Required?

Я полагаю, что понимаю TransactionScopeOption.Suppress и TransactionScopeOption.Required , но мне трудно понять, что делает TransactionScopeOption.RequiresNew . Основываясь на последнем объяснении, которое я прочитал, будут ли следующие два блока кода функционально одинаковыми? Это точное представление того, что означает RequiresNew ?

using (var ts1 = new TransactionScope(TransactionScopeOption.RequiresNew))
{
  DoStuff();
  ts1.Complete();
}

и

using (var ts2 = new TransactionScope(TransactionScopeOptions.Suppress))
{
  using (var ts3 = new TransactionScope())
  {
    DoStuff();
    ts3.Complete();
  }

  ts2.Complete(); // not required but recommended for consistency's sake
}
14
задан Jaxidian 8 August 2011 в 20:02
поделиться