3

Databaseprovider というクラスがあり、CurrentTransaction という静的な OracleTransaction プロパティがあります。値を割り当てる方法は次のとおりです。

        OracleConnection connection = ConnectionProvider.CreateConnection(conString);
        connection.Open();
        DatabaseProvider.CurrentTransaction = connection.BeginTransaction(IsolationLevel.ReadCommitted);

コミットまたはロールバックの後、トランザクションの接続プロパティが null に設定されることに気付きました。前に作成した OracleConnection オブジェクトはどうなるのでしょうか。それも閉じられて破棄されますか、それともフリーで到達不能なオブジェクトになりますか?

4

2 に答える 2

4

コードが.Close().

using上記のコードの代わりにブロックでコードを書きます。

using (OracleConnection connection = ConnectionProvider.CreateConnection(conString))
{
   ....
}

必要に応じて高価なオブジェクトを初期化し、使用後に破棄します。

于 2012-09-10T08:21:57.157 に答える
2

try catch finally ブロックを使用し、finally ブロックで明示的に接続を閉じて、接続を解放します。

于 2012-09-10T09:39:56.900 に答える