こんにちは、TransactionScope を使用したトランザクションがコミットまたはロールバックされたかどうかを確認する方法はありますか?
2568 次
3 に答える
0
はい。変数を追加してチェックするだけです。
bool txExecuted;
using (var tx = new TransactionScope())
{
//code
if (code was OK)
{
tx.Complete();
txExecuted = true;
}
}
于 2013-11-08T18:15:04.567 に答える
0
msdn ドキュメントについて https://msdn.microsoft.com/en-us/library/system.transactions.transactionscope.complete(v=vs.110).aspx
// Complete メソッドはトランザクションをコミットします。例外がスローされた場合、
// Complete は呼び出されず、トランザクションはロールバックされます。
completeCallback メソッドは、successfull transactionScope.Complete() メソッドの実行後にのみ呼び出されます
したがって、関数を使用できます:
public bool TryRunTransaction(Action transactionAction)
{
try
{
using (var transactionScope = new TransactionScope())
{
transactionAction();
transactionScope.Complete();
}
return true;
}
catch (TransactionAbortedException)
{
return false;
}
}
于 2017-06-22T13:18:55.387 に答える