Snuppi Asked:2020-05-22 18:36:32 +0000 UTC2020-05-22 18:36:32 +0000 UTC 2020-05-22 18:36:32 +0000 UTC 删除 EF Core 和事务中的范围 772 当我们在 ef core 中使用 Remove range 删除时,我们是否在事务中完成了所有操作?如果没有从要删除的对象列表中删除某些内容,那么所有内容都会回滚吗? c# 1 个回答 Voted Best Answer Pavel Mayorov 2020-05-22T19:05:37Z2020-05-22T19:05:37Z 删除本身是在事务中完成的,就像对SaveChanges/的任何调用一样SaveChangesAsync。 但是你需要明白,在没有额外手势的情况下,从数据库中选择数据和删除它们是两个不同的操作! 如果要求选择和删除在同一个事务中,必须显式创建事务: using (var tran = ctx.Database.BeginTransaction()) { ctx.Foo.RemoveRange(ctx.Foo.Where(x => x.Bar = 42)); ctx.SaveChanges(); tran.Commit(); }
删除本身是在事务中完成的,就像对
SaveChanges/的任何调用一样SaveChangesAsync。但是你需要明白,在没有额外手势的情况下,从数据库中选择数据和删除它们是两个不同的操作!
如果要求选择和删除在同一个事务中,必须显式创建事务: