因为朋友没有专家分了,所以用我的帐号帮他发一个问题。
一、示意代码如下
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、除了提高事务的隔离级别,还有别的办法吗?
你的改动有生效吗,不然你怎么衡量回滚有没有发生