3

我有一个围绕一些功能的事务范围。这些函数每个都执行插入或更新的数据库调用。

 using (var ts = new TransactionScope(TransactionScopeOption.Required, new TransactionOptions()
            {
                IsolationLevel =
                    IsolationLevel.Serializable,
                Timeout = new TimeSpan(0, 0, 15, 0)
            }))
            {
                    DoStuff(arg!, arg2);
                    ts.Complete(); //This had to be added to commit the changes for inserts (updates worked), otherwise data was being rolled back
            }

随着ts.Complete();插入和更新被提交到数据库,没有只有更新。有人可以解释为什么吗?

4

1 回答 1

4

这表明您的更新不是交易的一部分。这可能意味着:

  • 更新是在您开始事务范围之前已经存在的连接上完成的
  • 存在显式嵌套的新事务或无事务
  • 独角兽

确认:没有完成,事务中的任何内容都不会被提交

于 2013-01-03T16:45:24.723 回答