我目前对TransactionScope对象的构造函数感到困惑.
假设我的网站用户可以订购产品.在提交请求时,我会对剩余的当前数量进行验证,如果仍然大于零,我会执行请求.然后,在结束时,我减少当前剩余的数量.
整个过程使用.NET transactionScope进行事务处理.
在阅读了几篇关于.NET transactionScope对象的文章之后,我现在对TransactionScopeOption的值有点困惑,它用于transactionScope的构造函数.
以下哪一种更适合上述情况:
public void ProcessRequest()
{
TransactionOptions transactionOptions = new TransactionOptions();
transactionOptions.IsolationLevel = IsolationLevel.Serializable;
using (TransactionScope currentScope = new TransactionScope(TransactionScopeOption.RequiresNew, transactionOptions)) {
// DB Query to verify if quantity is still greater than zero
// DB Query to request and decrement quantity
currentScope.Complete();
}
}
Run Code Online (Sandbox Code Playgroud)
要么
public void ProcessRequest()
{
TransactionOptions transactionOptions = new TransactionOptions();
transactionOptions.IsolationLevel = IsolationLevel.Serializable;
using (TransactionScope currentScope = new TransactionScope(TransactionScopeOption.Required, transactionOptions)) {
// DB Query to verify if quantity is still …Run Code Online (Sandbox Code Playgroud)