これらの2つの質問に対する答えは、私自身の答えに非常に近いものですが、完全には到達していません。
SqlConnection
開いたり閉じたりするだけでなく、より多くの状態があることがわかったので、usingステートメント内にない接続を閉じるときにこれを行う必要があるかどうか疑問に思います。
switch (_transactionConnection.State)
{
case ConnectionState.Broken: /*??*/ ; break;
case ConnectionState.Closed: ; break;
case ConnectionState.Connecting: /*??*/ ; break;
case ConnectionState.Executing: /*??*/ ; break;
case ConnectionState.Fetching: /*??*/ ; break;
default: _transactionConnection.Close(); break;
}
SqlConnection _transactionConnection
using
このクラスの外部からトランザクションを開始、コミット、およびロールバックする必要があるため、はステートメント内にありません。このクラスは実装されIDisposable
、switchステートメントはに存在しますDispose(bool disposing)
MSDNによると、オープンとクローズ以外の状態は製品の将来のバージョン用であるとのことですが、@ Charlieによると、リフレクターは他の状態が使用中であることを示しています。
誰かが私に何を置き換える必要があるか教えてもらえます/*??*/
か?(私の最後のswitchステートメントはOpenとClosedのケースを明示的に処理/*??*/
し、他の状態でも同じである場合、それが私のデフォルトのケースになると思います。)