在EF6,MVC,MySQL场景中,使用EF TransactionScope
和DBContext.BeginTransaction
有什么区别? TransactionScope
中没有明确的回滚。
应该是
using transactionscope
{
using dbContext
{
.........
.........
dbContext.SaveChanges();
.............
.......
dbContext.SaveChanges();
}
transactionscope.Complete();
// there is no .Rollback method
}
或者
using dbContext
{
using dbtx = dbContext.Database.BeginTransaction
{
.........
.........
dbContext.SaveChanges();
.............
.......
dbContext.SaveChanges();
dbtx.Commit()
// and dbtx.Rollback() when exception occurs
}
}
有什么区别?
答案 0 :(得分:0)
我不会注意区别。我不担心隔离级别。以下工作:要么全部回滚(不需要显式回滚),要么所有提交:
using (TransactionScope scope = new TransactionScope())
{
...
db.SaveChanges();
...
db.SaveChanges();
scope.Complete();
}