这个话题可能已经在某个地方有了一个很好的答案,但如果你能提供帮助,我会很高兴。我不明白在 ef core 中使用显式事务的意义, 例如
ctx.Database.BeginTransaction();
...some chnages
ctx.SaveChangesAsync();
...osme changes
ctx.SaveChangesASync();
transaction.commit();
刚刚写的时候出了什么问题
...some changes
ctx.SaveChangesAsync();
是否将我们的更改作为交易应用? 我可以看到显式事务的使用,在使用不同的数据库时可能很有用,但还有另一个问题,IDBTransaction 与 TransactionScope 有何不同?它可以在不同的环境下工作吗?
由 DeepL.com 翻译(免费版)
想知道............
EF 对于每个
SaveChangesAsync
调用都有一个隐式事务。很少需要显式事务,除非您可能需要多次调用 SaveChangesAsync,并且由于某种原因想要回滚所有事务。
在这种情况下,制作自己的
IDBTransaction
会更明确。 TransactionScope
为您的所有操作创建一个“环境事务”,这在某些情况下可能很有用,但我很少使用它。
Tl;博士
不要在 EF 中使用显式事务。