EF transaction
来源:互联网 发布:淘宝宁美国度 编辑:程序博客网 时间:2024/04/30 19:11
在Entity Framework 中使用SaveChanges()是很频繁的,单次修改或删除数据后调用SaveChanges()返回影响记录数。
要使用批量修改或者批量删除数据,就需要SaveChanges(false)+AcceptAllChanges()方法了。
SaveChanges(false) 只是通知EF需要对数据库执行的操作,在内存中是属于挂起状态,在必要的时候是可以撤销的,比如AcceptAllChange()提交为真正成功,EF将撤销SaveChanges(false)的操作。
而在处理分布式事务操作的时候,就有必要使用TransactionScope 来处理了,很多时候我们会这样写:
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并没有真正发生改变,如果事务终止,自动回滚,两者的更改都没有真正提交到数据库,所以是可以成功回滚的
http://www.cnblogs.com/aisini/archive/2011/03/25/1994487.html
0 0
- EF transaction
- ef
- EF
- EF
- EF
- EF
- EF
- Transaction
- Transaction
- Transaction
- transaction
- Transaction
- Transaction
- Transaction
- Transaction
- @Transaction
- transaction
- Transaction
- iOS - 需求 - 将参数进行字典排序组成字符串(待签名字符串)
- 汪金梓:ADP数据引爆1200分水岭,一波抓回震荡损失
- 30多个iOS常用动画,带详细注释
- uboot下tftp在tp-link路由器上不通
- 适合办公的word转换成pdf转换器
- EF transaction
- oracle hanganalyze工具的使用
- 存储过程的优缺点
- opencv & qt study-(3)-图像的容器--Mat
- java高并发设计
- android EditText 默认情况下不获取焦点(不弹出输入框)
- matlab查找指定文件夹下文件(附汉字和标点符号读取方法)
- How to remove a ghost backup server process
- windows 端口情况查看