.net 事务的隔离级别,事务为什么事实上没有遵循原子性?

一、示意代码如下

 TransactionOptions transOption = new TransactionOptions();
transOption.IsolationLevel = System.Transactions.IsolationLevel.RepeatableRead;
using (TransactionScope ts = new TransactionScope(TransactionScopeOption.RequiresNew, transOption))
{
    //1、增加申请
    dal.Add(apply);

    //2、更新订单状态
    dalOrders.UpdateStatus(orderId, PaymentStatus.等待退款.GetHashCode());

    //提交事务
    ts.Complete();
}

二、运行环境

Windows2008 + .net Framework3.5 + SqServer2008R2,web服务器和Db服务器是分开的

三、问题现象

第1步成功了,第2步失败了,但事务没有回滚而是提交了。

四、请教大神

1、这是什么原因呢?
2、除了提高事务的隔离级别,还有别的办法吗?

http://www.cnblogs.com/lanzi/archive/2012/12/07/2807680.html