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,如需转载请自行联系原作者

目录
打赏
0
0
0
0
46
分享
相关文章
【BUG记录】Cause: java.sql.SQLException: Incorrect string value: '\xF0\x9F\x90\xA6' for column 'name' at row 1
在MySQL中遇到`Incorrect string value`错误通常是因为尝试插入的字符串包含不被数据库字符集支持的字符,如表情符号。错误根源是MySQL默认的utf8不支持4字节的UTF-8字符(如Emoji)。
906 1
VS2017出现的神奇错误HRSULT:0x80041FE2
VS2017出现的神奇错误HRSULT:0x80041FE2
153 1
devc++中debug无法正常使用(debug启动后无反应)
devc++中debug无法正常使用(debug启动后无反应)
811 0
CDB断点调试器报错:Exception at 0x7715c5af, code: 0xe06d7363
CDB断点调试器报错:Exception at 0x7715c5af, code: 0xe06d7363
1415 0
CDB断点调试器报错:Exception at 0x7715c5af, code: 0xe06d7363
EF Core利用Transaction对数据进行回滚保护
What? 首先,说一下什么是EF Core中的Transaction Transaction允许以原子方式处理多个数据库操作,如果事务已提交,则所有操作都应用于数据库,如果事务回滚,则没有任何操作应用于数据库。
1909 0