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?