anchor.diff:  
   (**
       
  -*)+*)
  
positive.code:     tran.Complete()
  
  (**
  Although very convenient `TransactoinScope` has some pitfalls and 
  therefore requires good understanding of what happens behind the scene. 
  Make sure you read [general usage guidelines](https://msdn.microsoft.com/en-us/library/ee818746.aspx).
  
  There are two kind of issues you might run into when using `TransactionScope`
  
  Unexpectedly Distributed Transactions 
  -------------------------------------
  [Distributed Transactions](https://msdn.microsoft.com/en-us/library/ms254973.aspx) spell all kind of troubles. 
  Rare necessity it should be avoided in most cases. 
  Strictly speaking this problem is not specific to TransactionScope 
  but automatic [Transaction Management Escalation](https://msdn.microsoft.com/en-us/library/ee818742.aspx) 
  makes it's really easy to fall into the trap.
  
  If a local transaction was accidently promoted to distributed it is software design problem. 
  Have a simple check in a code right before commit to reveal the issue.: 
  
  *)
  
  
negative.code: 
  <div class="well well-small" style="margin:0px 70px 0px 20px;">
  
  **TIP** SQL Server can use multiple `SQLConnections` in a `TransactionScope` without escalating, 
  provided the connections are not open at the same time (which would result in multiple "physical" TCP connections and thus require escalation).
  </p></div>
  
  <div class="well well-small" style="margin:0px 70px 0px 20px;">
  
  **TIP** The value of the [Enlist](https://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlconnectionstringbuilder.enlist.aspx) 
  key from [SqlConnection.ConnectionString](https://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlconnection.connectionstring.aspx) 
  property determines the auto-enlistment behavior of connection instance.
  </p></div>
  
  TransactionScope + AsyncExecute 
  -------------------------------------
  
  Another tricky problem involves combining `TransactionScope` with asynchronous execution. 
  `TransactoinScope` [has thread affinity](http://stackoverflow.com/q/13543254/1603572). 
  To propagate the transaction context to another thread, .NET 4.5.1 introduced [TransactionScopeAsyncFlowOption.Enabled](https://msdn.microsoft.com/en-us/library/system.transactions.transactionscopeasyncflowoption.aspx) which needs to be passed into the [TransactionScope constructor](https://msdn.microsoft.com/en-us/library/dn261473.aspx). 
  Unfortunately if you are stuck with .NET Framework prior to version 4.5.1 the only way 
  to combine `TransactionScope` with `AsyncExecute` is explicit transactions.  
  
  *)
  