当前位置:  开发笔记 > 后端 > 正文

您知道如何在Castle ActiveRecord中实现事务吗?

如何解决《您知道如何在CastleActiveRecord中实现事务吗?》经验,为你挑选了1个好方法。

我决定使用Castle ActiveRecord为客户制作一个系统,一切顺利,直到我发现交易不起作用,例如;

               TransactionScope t = new TransactionScope();

               try
               {
                   member.Save();

                   //This is just to see transaction working
                   throw new Exception("Exception");  

                   foreach (qfh.Beneficiary b1 in l)
                   {
                       b1.Create();
                   }


               }
               catch (Exception ex)
               {

                   t.VoteRollBack();
                   MessageBox.Show(ex.Message);
               }
               finally
               {
                   t.Dispose();
               }

但它不起作用,我抛出一个Exception只是为了尝试事务回滚,但令我惊讶的是我看到第一个[Save]记录到数据库中.怎么了?

我是Castle和NHibernate的新手,首先我看到它非常有吸引力,我决定继续使用它和MySQL(我从来没有使用过这个数据库),我尝试过ActiveWriter,看起来非常有希望但经过漫长而努力的努力一周我看到了这个问题,现在我觉得我被困住了,就像我浪费了我的时间一样.这应该是容易的但是现在我感到沮丧的原因我找不到足够的信息来进行锻炼,你能帮助我吗?



1> Ben Scheirma..:

您需要将代码包装在会话范围中,如下所示:

using(new SessionScope())
{
   a.Save();
   b.Save();
   c.Save();
}

在这里阅读更多.

推荐阅读
TXCWB_523
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有