事务嵌套的处理方案


            using (IDbHelper dbHelper = DbHelperFactory.GetHelper(BaseSystemInfo.BusinessDbType, BaseSystemInfo.BusinessDbConnection))
            {
                    try
                    {
                        // 开启事务
                        IDbTransaction tran = dbHelper.BeginTransaction();
                        sqlBuilder = new SQLBuilder(dbHelper);
                        sqlBuilder.BeginUpdate("CUSTOMER_GLOBAL");
                        SetCustomerGlobalObject(sqlBuilder, dr);
                        sqlBuilder.SetWhere("ID", id);
                        resultSQL = sqlBuilder.EndUpdate();
                        if (resultSQL == 0)
                        {
                            sqlBuilder = new SQLBuilder(dbHelper, false, true);
                            sqlBuilder.BeginInsert("CUSTOMER_GLOBAL");
                            sqlBuilder.SetValue("ID", id);
                            SetCustomerGlobalObject(sqlBuilder, dr);
                            resultSQL = sqlBuilder.EndInsert();
                            isAdd = true;
                        }



    //    其它批量处理的事务 tran.Connection    
                            IBatcherHelperService batcher = dbHelper.GetService<IBatcherHelperService>();
                            batcher.Insert(dataExtension,1000, tran.Connection);

                        // 提交事务
                        dbHelper.CommitTransaction();
                    }
                    catch (Exception ex)
                    {
                        // 回滚事务
                        dbHelper.RollbackTransaction();
                     }
                    finally
                    {
                   
                    }
 

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM