EF Code-First中的事务

简介:

对于一个ORM框架,支持事务操作是必须的。EF Code-Frist本身就是支持事务的。

我们的每一次SaveChanges就是一个事务操作,只需要在所有更改都完成后,调用这个方法就可以了。

如果你不愿意,网上还有人给出了手动的开启事务的代码(我没有测试过):

复制代码
DbConnection con = ((IObjectContextAdapter)ctx).ObjectContext.Connection;
con.Open();
using (var tran = con.BeginTransaction())
{
// 这里才是事务中的代码

tran.Commit();
}
con.Close(); 
复制代码

 

以上都是针对一个DbContext,也就是一个数据库的时候,如果操作涉及到多个数据库,还是使用分布式事务操作比较靠谱。

关于分布式事务,请移步我的另一篇文章:.NET分布式事务处理




本文转自齐师傅博客园博客,原文链接:http://www.cnblogs.com/youring2/archive/2012/05/23/2514962.html,如需转载请自行联系原作者

相关文章
|
关系型数据库 MySQL 编译器
在 EF Core 7 中实现强类型 ID
本文主要介绍 DDD 中的强类型 ID 的概念,及其在 EF 7 中的实现,以及使用 LessCode.EFCore.StronglyTypedId 这种更简易的上手方式。
224 0
在 EF Core 7 中实现强类型 ID
|
数据库
EF-ModelFirst实现过程
EF-ModelFirst实现过程
EF-ModelFirst实现过程
|
存储 中间件
中间件事务码R3AC1里Block Size的含义
在中间件事务码R3AC1可以为一个中间件的适配器对象维护Block size的大小。
143 2
中间件事务码R3AC1里Block Size的含义
SAP QM 执行事务代码QA11 报错- Selected set code does not exist, or data entered is incomplete-
SAP QM 执行事务代码QA11 报错- Selected set code does not exist, or data entered is incomplete-
SAP QM 执行事务代码QA11 报错- Selected set code does not exist, or data entered is incomplete-
|
开发框架 .NET API
EF Core 数据验证
EF Core 数据验证
208 0
|
关系型数据库 MySQL 数据库
EF Core利用Transaction对数据进行回滚保护
What? 首先,说一下什么是EF Core中的Transaction Transaction允许以原子方式处理多个数据库操作,如果事务已提交,则所有操作都应用于数据库,如果事务回滚,则没有任何操作应用于数据库。
1867 0