一、事务概述
Ø 定义:所谓事务是指其中的一个或多个操作要么都执行要么都不执行
Ø 为什么要使用:确保数据的安全和完整
Ø 何时使用:在任何时候都要使用事务,即使是在读取、查询数据的时候,为什么呢?因为你不清楚数据库什么时候操作失败,如何恢复原来数据。而的事务可以帮助我们完成这些事情。
Ø 注意事项:请结合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提供的功能,看起来比较直观方便。