代码之家  ›  专栏  ›  技术社区  ›  Riyaz Vagapov

EF核心交易

  •  0
  • Riyaz Vagapov  · 技术社区  · 2 年前

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

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

    只是写作有什么问题

    ...some changes
    ctx.SaveChangesAsync();
    

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

    DeepL.com翻译(免费版)

    想知道。。。。。。。。。。。。

    1 回复  |  直到 2 年前
        1
  •  0
  •   marsze    2 年前

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

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

    简而言之:不要在EF中使用显式交易。你不太可能需要它,尤其是当你还是个初学者的时候。