码迷,mamicode.com
首页 > 其他好文 > 详细

PetaPoco4.0的事务为什么不会回滚

时间:2014-11-04 18:45:50      阅读:232      评论:0      收藏:0      [点我收藏+]

标签:style   blog   io   color   ar   os   for   sp   div   

using (var srop=DbHelper.CurrentDb.GetTransaction())
        {
            ID = bp.AddModel(model).ToStr();
            #region 参与楼盘信息
            if (ID.ToInt32() > 0)
            {
                FY_ActivityProjectServer dtlServer = new FY_ActivityProjectServer();
                for (int i = 0; i <= this.Projects.Items.Count; i++)
                {
                    if (this.Projects.Items[i].Selected)
                    {
                        FY_ActivityProject dtl = new FY_ActivityProject();
                        dtl.ActivityID = ID.ToInt32();
                        dtl.ProjectID = this.Projects.Items[i].Value.ToInt32();
                        dtl.IsDel = false;
                        dtlList.Add(dtl);
                    }
                }
                dtlServer.AddModel(dtlList);
            }
            #endregion
            srop.Complete(); 
        }

以上是第一种写法

下面是第二种写法:

DbHelper.CurrentDb.BeginTransaction();//事务开始
        this.ModelDataCollect();
        FY_ActivityServer bp = new FY_ActivityServer();
        try
        {
            ID = bp.AddModel(model).ToStr(); 
            #region 参与楼盘信息
            if (ID.ToInt32() > 0)
            {
                FY_ActivityProjectServer dtlServer = new FY_ActivityProjectServer();
                for (int i = 0; i <= this.Projects.Items.Count; i++)
                {
                    if (this.Projects.Items[i].Selected)
                    {
                        FY_ActivityProject dtl = new FY_ActivityProject();
                        dtl.ActivityID = ID.ToInt32();
                        dtl.ProjectID = this.Projects.Items[i].Value.ToInt32();
                        dtl.IsDel = false;
                        dtlList.Add(dtl);
                    }
                }
                dtlServer.AddModel(dtlList);
            }
            #endregion
            DbHelper.CurrentDb.CompleteTransaction();
        }
        catch (Exception)
        {
            DbHelper.CurrentDb.AbortTransaction();
        }

以上操作有两个insert操作

第一个insert能插入成功,第二个insert方法故意让它报错,

问题来了,

PetaPoco 不会回滚,导致第一个操作插入成功,第二个操作插入失败

求解决方案

PetaPoco4.0的事务为什么不会回滚

标签:style   blog   io   color   ar   os   for   sp   div   

原文地址:http://www.cnblogs.com/ezplusy/p/4074008.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!