EntityFrameWork Core从零开始,(七)事务的应用与管理

前言:
数据库事务想必Web开发都十分的熟悉.
可以说是后台开发的必备技能了.
笔者在校招面试时,关于事务的问题就快要被问烂了
其无外乎
以下内容如不熟悉,请尽快复习
1.四大特性(ACID)
2.事务的传播属性
3.事务的隔离级别
4.Spring的声明式事务的原理(AOP)
5.一些具体的使用

(PS:分布式事务不在应届生事务问题之列…)

1.本地事务

EFCore的Savechanges()方法默认就是本地事务
及执行Savechanges()方法执行时会自动Commit,如果错误也能够自动进行回滚

当然,也可以手动控制本地事务

static void Main(string[] args)
{
   
    PPDbContext context = new PPDbContext();
    //在改数据库上下文中获取Transcation,
    var Transcation = context.Database.BeginTransaction();

    try
    {
   
        Person personOne = new Person();
        personOne.Name = 33;

        context.persons.Add(personOne);

        Pet petOne = new Pet();
        petOne.name = "mao1";
        petOne.owner = personOne;

        context.pets.Add(petOne);

        context.SaveChanges();
        //控制事务的提交
        Transcation.Commit();
    }
    catch(Exception e)
    {
   
    	//控制事务的回滚
        Transcation.Rollback();
    }

}

本地事务的功能有限,使用也比较简单.一般只需要注意事务失败的回滚即可

保存点(介绍)

EFCore在事务中引入了一种保存点的设置,
保存点是用来控制回滚的一种方式,及可以回滚到你设置的保存点(而不是把回滚到方法执行之前)
使用方式也很简单,这是两个API
详细用法参考:https://docs.microsoft.com/zh-cn/ef/core/saving/transactions

transcation.CreateSavePoint(String pointname
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

罗马苏丹默罕默德

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值