クラス内の異なるメソッドで同じSQLConnectionを再利用したい。私が今行っていること(テストのみ)は、コンストラクターで接続を作成して開くことです。
SQLConnection Connection;
Constructor(string connection_string)
{
this.Connection = new SqlConnection(connection_string);
this.Connection.Open();
}
次に、メソッド内で「this.Connection」を使用し、最後に、オブジェクトが不要になったときにthis.Connection.Close()とDispose()を使用します。私が知っていることから、次のように各メソッド内で「using」を使用する方がクリーンです(コンストラクターはconnection_stringのみを設定します)。
using (SqlConnection connection = new SqlConnection(connection_string)) {
connection.Open(); ...
}
接続プールのため、実際には1つの接続のみが使用されますが、上記の「using」行が複数のメソッドに配置されている場合(たとえば、次々に呼び出される場合)、正しいですか?ただし、これにより、1つだけが必要なSQLConnectionインスタンスが多数作成されませんか?例えば:
MyClass obj(some_string);
obj.Method1(); // calls 'using SqlConnection connection = new SqlConnection'
obj.Method2(); // calls 'using SqlConnection connection = new SqlConnection'
obj.Method3(); // calls 'using SqlConnection connection = new SqlConnection'
では、SQLConnectionを共有するための適切で最適な方法は何でしょうか。