运用TransactionScope预防执行异常中的数据缺失

TransactionScope:事务,作为MVC中自带的引用类,它的作用无疑是比较大的。它可以有效的预防代码在执行过程中出现异常所导致的数据缺失或生产出多余的垃圾数据。

比如说我需要新增多条数据到数据库当中,这就需要在控制器中设置好新增的方法,若是在调用该方法时方法出现了异常,反倒将选中的以及未选中的数据一起新增进了数据库。这时候,数据库就多出来了一部分的无用数据,这些数据将会长期占据数据库的空间,成为垃圾数据。然而,事务就可以很好的避免发生这种情况,事务一旦触发,它所产生的效果为[数据回滚]。

数据回滚:(将数据信息返回到方法执行前,错误以及异常的数据不会被保存到数据库当中)。

被事务包裹着的方法必须都要执行成功,否则就会触发回滚。正是因为有了这数据回滚的作用,才能有效的防止垃圾数据的产生。

事务调用的步骤:

  1. 没有使用过事务的在开始时需要去MVC的解决方案处,找到引用,再从引用处点击鼠标右键打开菜单,点击添加引用后弹出引用管理器,在管理器的框架选择项中找到 System.Transactions类,进行勾选后点击确定就可以将事务引用成功了。
    在这里插入图片描述
  2. 在控制器的最左上角通过using.System.Transactions引用事务,接着就可以在写好的方法内进行调用:
    在这里插入图片描述
    在using小括号内定义的变量【scope】在执行完成后都会被系统回收,也就是说该变量只能使用一次,不能重复使用,new TransactionScope = 事务的启用。

3.将写好的方法放入事务内。值得注意的是:将方法放入事务内时,在它的结尾处一定要记得写上提交事务,如果没有这句代码,即使方法没有出错或出现异常,数据仍不会保存到数据库当中。
在这里插入图片描述
Complete,中文是完成的意思,若是缺少这句代码事务内的数据仍然是没法真正保存到数据库当中的,即便是写了SaveChanges(保存)也不行。

特别是在一些多表处理数据的方法中,事务的数据回滚作用显得尤为突出。即便是方法出错也不必担心数据的混乱,安心找Bug就可以了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值