TransactionScope事务

Posted 那就让我这样吧

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了TransactionScope事务相关的知识,希望对你有一定的参考价值。

一个错误的理解就是Complete()方法是提交事务的,这是错误的,事实上,它的作用的表示本事务完成,它一般放在try{}的结尾处,不用判断前台操作是否成功,如果不成功,它会自己回滚。

  #region 事务问题
            using (TransactionScope trans = new TransactionScope())
            {
                try
                {
                    InsertUserBase(); //它插入不成功,自己回滚

                    UserInfos userInfo = new UserInfos
                    {
                        UserID = "1",
                        RealName = "zzl",
                    };
                    db.UserInfos.InsertOnSubmit(userInfo);
                    db.SubmitChanges();

                    trans.Complete();
                }
                catch (Exception)
                {

                    // throw;
                }
                finally
                {
                    trans.Dispose();
                }
            }
            #endregion

以上是关于TransactionScope事务的主要内容,如果未能解决你的问题,请参考以下文章

在啥情况下 SqlConnection 会自动加入环境 TransactionScope 事务?

C#分布式事务解决方案-TransactionScope

TransactionScope:避免分布式事务

TransactionScope事务

内存中的 Sqlite - TransactionScope - 已检测到环境事务

使用TransactionScope做分布式事务协调