gpt4 book ai didi

entity-framework - Entity Framework 6 上的回滚

转载 作者:行者123 更新时间:2023-12-02 08:40:10 24 4
gpt4 key购买 nike

我正在参与一个使用 Entity Framework 6 在 SQL Server 2012 上进行数据库访问的项目。

我们的团队正在讨论回滚后数据库上下文的状态。很明显,执行回滚后数据库不会受到事务更改的影响。但上下文又如何呢?

我所在的团队相信数据库上下文会回滚以及数据库更改。换句话说,我认为继续处理上下文是安全的,不会冒回滚事务中的某些更改仍然潜伏在上下文中某处的风险。

有人可以杀掉这只鸭子吗,这样我们就可以结束讨论了。我四处寻找明确的答案,但没有找到。

如果我的假设是错误的,即上下文和数据库更改都会回滚,我会感到非常失望。这意味着我们应该停止一组复杂更新的迭代,丢弃上下文并重新开始,以防其中一个更新回滚。

最佳答案

context 不会发生任何事情。即使在回滚之后您也可以使用它。只有数据库更改才会回滚,并且 DbContextTransaction 会被释放一旦它被提交或回滚。

您可以使用 EF 6 的最新事务 API,如下所示。

using (var context = new YourContext()) 
{
using (var dbContextTransaction = context.Database.BeginTransaction())
{
try
{
//your db operations

context.SaveChanges();

dbContextTransaction.Commit();
}
catch (Exception)
{
dbContextTransaction.Rollback();
}
}
}

您可以在这里阅读更多相关信息:Entity Framework Working with Transactions

关于entity-framework - Entity Framework 6 上的回滚,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40262886/

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