EF 多库事务

Posted netcs

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了EF 多库事务相关的知识,希望对你有一定的参考价值。

using (TransactionScope scope = new TransactionScope())
{
    //Do something with context1
    //Do something with context2

    //Save Changes but don‘t discard yet
    context1.SaveChanges(false);

    //Save Changes but don‘t discard yet
    context2.SaveChanges(false);

    //if we get here things are looking good.
    scope.Complete();
    context1.AcceptAllChanges();
    context2.AcceptAllChanges();

}

 我们用SaveChanges(false)先将必要的数据库操作命令发送给数据库,这是注意context1与context2并没有真正发生改变,如果事务终止,自动回滚,两者的更改都没有真正提交到数据库,所以是可以成功回滚的。

以上是关于EF 多库事务的主要内容,如果未能解决你的问题,请参考以下文章

Laravel框架Mysql连接多库时事物处理需要指定库

聊聊分布式事务一致性与本地消息表

EF RemoveRange 在事务范围内不起作用

EF添加关联的提示问题:映射从第 260 行开始的片段时有问题:

片段事务中的实例化错误

EF6 自定义迁移表名