[英]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.