• TransactionScope只要一个操作失败,它会自动回滚,Complete表示事务完成


    实事上,一个错误的理解就是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

      static bool InsertUserBase()
            {

                bool flag;
                try
                {
                    UserBases userbase = new UserBases
                    {
                        UserID = "0005",
                        Name = "zzl",
                        CreateDate = DateTime.Now,
                        UpdateDate = DateTime.Now,

                    };
                    db.UserBases.InsertOnSubmit(userbase);
                    db.SubmitChanges();
                    flag = true;
                }
                catch (Exception)
                {

                    throw;
                }
                return flag;

            }

    InsertUserBase()只要出现异常,程序将自己回滚

  • 相关阅读:
    以太坊:区块(Blocks)
    以太坊:事件日志 (Event Logs)
    以太坊:节点代理(Geth/Parity Proxy) APIs
    以太坊:代币信息 Token
    以太坊:Etherscan API 约定
    以太坊:账号(Account)
    以太坊:智能合约(Contracts)
    我的友情链接
    我的友情链接
    我的友情链接
  • 原文地址:https://www.cnblogs.com/soundcode/p/6788958.html
Copyright © 2020-2023  润新知