实体框架 - SaveChanges 与 Transaction

Jar*_*iak 7 .net c# database entity-framework

我有一个有点愚蠢的问题,但我没有找到答案。

对 SaveChanges() 的单次调用与事务内对 SaveChanges() 的单次调用有什么区别吗?(我在.net core 5应用程序中使用实体框架)

我想在一个表中创建一条记录并更新另一个表中的数据。

例如,它将是:

users.Password = "..."

var passwordReset = new PasswordReset(...)

_context.Add(passwordReset);
_context.SaveChanges();
Run Code Online (Sandbox Code Playgroud)

并通过交易:

using (var transaction = _context.Database.BeginTransaction())
{
    users.Password = "..."

    var passwordReset = new PasswordReset(...)

    _context.Add(passwordReset);
    _context.SaveChanges();

    transaction.Commit();
}
Run Code Online (Sandbox Code Playgroud)

我想确保两个查询将成功完成,但我不知道哪个选项最适合我。

提前致谢

And*_*dyG 8

事务内的单次调用SaveChanges()和单次调用之间有什么区别吗?SaveChanges()(我在.net core 5应用程序中使用实体框架)

并不真地。一次调用即可SaveChanges()形成自己的事务。使用事务是一种将多个调用分组在一起的方法SaveChanges,因此它们可能全部成功或全部失败(或者具有更细粒度的控制以在失败时部分回滚)。

请参阅EF Core 中事务的参考