簡體   English   中英

如果在某些情況下不提交更改,是否需要手動回滾事務?

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM