丹尼大叔

数学专业毕业,爱上编程的大叔,兴趣广泛。使用博客园这个平台分享我工作和业余的学习内容,以编程交友。有朋自远方来,不亦乐乎。

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

摘要

NHibernate实现事务机制非常简单,调用ISession.BeginTransaction()开启一个事务对象ITransaction,使用ITransaction.Commit()提交事务,使用ITransaction.Rollback()回滚事务。

标准NHibernate事务代码:

 1        using (var session = SessionFactory.OpenSession())
 2         {
 3             using (var transaction = session.BeginTransaction())
 4             {
 5                 try
 6                 {
 7                     // some date operaton codes here
 8                     transaction.Commit();
 9                 }
10                 catch (HibernateException e)
11                 {
12                     transaction.Rollback();  // or log exception
13                 }
14             }
15         }

也可以使用下面的代码:

 1         var session = SessionFactory.OpenSession();
 2         var transaction = session.BeginTransaction();
 3         try
 4         {
 5             try
 6             {
 7                 // some date operaton codes here
 8                 transaction.Commit();
 9             }
10             catch (HibernateException e)
11             {
12                 transaction.Rollback();
13                 throw e; // or log exception
14             }
15             finally
16             {
17                 transaction.Dispose();
18             }
19         }
20         finally
21         {
22             session.Close();
23         }

上面两段落的代码是等效的。

 

posted on 2016-07-06 21:03  丹尼大叔  阅读(1087)  评论(1编辑  收藏  举报