[英]Do I need to manually roll back a transaction if not committing changes given some conditions?
示例:使用事务,并且仅在满足给定条件时提交。
using (var transaction = context.Database.BeginTransaction())
// ...
if (modelState.IsValid) {
transaction.Commit();
}
}
是否需要是:
using (var transaction = context.Database.BeginTransaction())
// ...
if (modelState.IsValid) {
transaction.Commit();
} else {
transaction.Rollback();
}
}
或不需要else
部分。 如果我不指定怎么办? 有什么好的指导方针吗?
您不需要手动调用回滚,因为您正在使用using语句。 不必显式调用Rollback
。 如果尚未调用Commit()
则事务将回滚。
DbContextTransaction.Dispose
方法将在using块的末尾调用。 如果未成功提交事务,它将自动回滚事务
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.