EF Core 事务

问题描述 投票:0回答:1

这个话题可能已经在某个地方有了一个很好的答案,但如果你能提供帮助,我会很高兴。我不明白在 ef core 中使用显式事务的意义, 例如

ctx.Database.BeginTransaction();
...some chnages
ctx.SaveChangesAsync();
...osme changes
ctx.SaveChangesASync();
transaction.commit();

刚刚写的时候出了什么问题

...some changes
ctx.SaveChangesAsync();

是否将我们的更改作为交易应用? 我可以看到显式事务的使用,在使用不同的数据库时可能很有用,但还有另一个问题,IDBTransaction 与 TransactionScope 有何不同?它可以在不同的环境下工作吗?

由 DeepL.com 翻译(免费版)

想知道............

c# entity-framework entity-framework-core transactions
1个回答
0
投票

EF 对于每个

SaveChangesAsync
调用都有一个隐式事务。很少需要显式事务,除非您可能需要多次调用 SaveChangesAsync,并且由于某种原因想要回滚所有事务。

在这种情况下,制作自己的

IDBTransaction
会更明确。
TransactionScope
为您的所有操作创建一个“环境事务”,这在某些情况下可能很有用,但我很少使用它。

Tl;博士

不要在 EF 中使用显式事务。

© www.soinside.com 2019 - 2024. All rights reserved.