Entity Framework 6 引入了新的方法,在 DbContext 中支持事务,使用 BeginTransaction 方法:
var db = new MyDbContext();
using(var tx = db.Database.BeginTransaction())
{
// update entities
try
{
db.SaveChanges();
tx.Commit();
}
catch(Exception)
{
tx.Rollback();
}
}
在这个方法中,Rollback() 的调用是否必要?如果不在发生异常时进行调用会发生什么?我知道在使用 TransactionScope 时,当它被处理并且没有调用 Complete 时会自动回滚事务。DbContextTransaction 是否也有类似的行为?