トランザクション スコープを使うと分散トランザクションにされてしまう
データベースでトランザクションを実行するとき、C#ではTransactionScopeを使うと便利。
デバッグしているときも、最後のCompleteメソッドを呼ばなければ、何も変わらないから助かる。
ただし、ひとつ気をつけないといけないのは、コネクションを何回も開くと、たとえローカルなデータベースにしかアクセスしていなくても、分散トランザクションと誤解されてしまうこと。
スコープの中でコネクションを1回だけ開けば問題なしです。
ただし、ひとつ気をつけないといけないのは、コネクションを何回も開くと、たとえローカルなデータベースにしかアクセスしていなくても、分散トランザクションと誤解されてしまうこと。
スコープの中でコネクションを1回だけ開けば問題なしです。
using(TransactionScope scope = new TransactionScope())
{
sqlConnection cn = new sqlConnection(xxx);
cn.Open();
// いろいろ実行
scope.Complete();
}
コメント
コメントを投稿