The*_*mpp 3 c# sql ado.net entity-framework transactions
我想问一下在ADO.Net Entity Framework(调用,回滚,提交)中使用事务的正确方法是什么?我有这个代码,但这给了我一个例外
"Invalid operation. The connection is closed."
Run Code Online (Sandbox Code Playgroud)
(在此代码中NorthwindEntities继承"DBContext")
NorthwindEntities context = new NorthwindEntities();
DbTransaction tran = context.Database.Connection.BeginTransaction();
var cust = context.Customers.FirstOrDefault(x => x.CustomerID == "BOLID");
cust.Country = "Nigeria";
context.SaveChanges();
tran.Rollback();
Run Code Online (Sandbox Code Playgroud)
要在EF中提交 "事务",只需调用即可context.SaveChanges().
在内部,SaveChanges打开连接,启动db事务,将所有挂起的更改(由上下文跟踪)推送到存储,提交事务并处置连接.如果在保存更改期间出现任何错误,则会回滚db transaction.
要回滚 "事务",只需丢弃上下文实例.
通常,不需要对EF使用外部数据库事务.
请注意,我在引号中使用"事务",因为EF上下文的更改跟踪器不等同于db事务.当您对数据进行一些更改(按上下文跟踪)时,这些更改不会立即影响存储.它们待定,直到你打电话SaveChanges.
| 归档时间: |
|
| 查看次数: |
1966 次 |
| 最近记录: |