现在的位置: 首页 > 综合 > 正文

五、NHibernate之事务处理

2013年01月01日 ⁄ 综合 ⁄ 共 1003字 ⁄ 字号 评论关闭

一、事务概述

Ø  定义:所谓事务是指其中的一个或多个操作要么都执行要么都不执行

Ø  为什么要使用:确保数据的安全和完整

Ø  何时使用:在任何时候都要使用事务,即使是在读取、查询数据的时候,为什么呢?因为你不清楚数据库什么时候操作失败,如何恢复原来数据。而的事务可以帮助我们完成这些事情。

Ø  注意事项:请结合using()和异常处理来一起使用

 

二、事务处理举例

以下函数添加到DAL中,具体文件自己决定:

        //推荐事务都采用以下的模式

        public bool Transactions()

        {

            //using语句会在using执行完后自动释放在其括号中产生的对象

            using (ITransaction tx = session.BeginTransaction())

            {

                //异常处理

                try

                {

                    //throw new Exception("模拟错误");  //需要执行的程序,此处进行异常模拟

 

                    tx.Commit();  //正确执行则提交

                    return true;

                }

                catch

                {

                    tx.Rollback();  //出错回滚

                    return false;

                }

            }

        }

以下函数添加到DAL.Test,具体文件自己决定

        [Test]

        public void TransactionsTest()

        {

            bool result = _crudAcc.Transactions();

            Assert.AreEqual(false, result);

        }

我们可以通过如下图的操作来查看代码的覆盖率:

 

结果如下:

 

 

淡蓝色底的代码为执行到的代码,砖红色底的代码为没有执行到的代码,这是由TestDriven.Net提供的功能,看起来比较直观方便。

 

 

抱歉!评论已关闭.