gpt4 book ai didi

c# - ADO.Net Entity Framework 事务

转载 作者:行者123 更新时间:2023-11-30 14:34:10 24 4
gpt4 key购买 nike

我想问一下在 ADO.Net Entity Framework (调用、回滚、提交)中使用事务的正确方法是什么?我有这段代码,但这给了我异常(exception)

"Invalid operation. The connection is closed." 

(在此代码中 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();

最佳答案

要在 EF 中提交“事务”,只需调用 context.SaveChanges()

在内部,SaveChanges 打开连接,启动数据库事务,将上下文跟踪的所有未决更改推送到存储,提交事务并处理连接。如果在保存更改期间出现任何错误,则回滚数据库事务。

回滚“事务”,只需丢弃上下文实例。

通常,不需要使用 EF 的外部数据库事务。

请注意,我在引号中使用了“事务”,因为 EF 上下文的更改跟踪器不等同于数据库事务。当您对数据进行一些更改时,由上下文跟踪,这些更改不会立即影响存储。它们处于待定状态,直到您调用 SaveChanges

关于c# - ADO.Net Entity Framework 事务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14496420/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com