title: TransactionScope error in ambient transaction does not rollback the transaction
body: <p>I use an ambient transaction like this :</p>
  
  <hr>
  
  <pre><code>using(TransactionScope tran = new TransactionScope()) {
      CallAMethod1();//INSERT
      CallAMethod2();//INSERT
      tran.Complete();
  }
  </code></pre>
  
  <p>The method <code>CallAMethod2();</code> returns <code>affected rows =-264</code>
  So it fails to insert however the first Insert has been committed !</p>
  
  <p>I want to know how to work with <code>ambient transaction</code> and what if the second method has more than one action which needs internal transaction , should i put these actions in internal transaction ?
  like this :</p>
  
  <pre><code>     DAL_Helper.Begin_Transaction();
  
                //------Fill newKeysDictioanry
  
                  affectedRow = DBUtilities.InsertEntityWithTrans("table2", newKeysDictioanry, DAL_Helper);
  
                  if (affectedRow == 1)
                  {
                      if (!string.IsNullOrEmpty(sp_confirm))
                      {
                          result_dt = UserTransactionDAL.Run_PostConfirm_SP(sp_PostConfirm, OBJ.ValuesKey, DAL_Helper);
                          if (result_dt.Rows.Count &gt; 0 &amp;&amp; result_dt.Rows[0][0].ToString() == "0")
                          {
                              DAL_Helper.current_trans.Commit();
  
                              if (DAL_Helper.connectionState == ConnectionState.Open)
                              {
                                  DAL_Helper.Close_Connection();
                              }
                              return 1;// affectedRow;
                          }
                          else
                          {
                              DAL_Helper.current_trans.Rollback();
                              if (DAL_Helper.connectionState == ConnectionState.Open)
                              {
                                  DAL_Helper.Close_Connection();
                              }
                              return -2; 
                          }
                      }
  //etc
  </code></pre>