私は次のようなsqlConnectionマネージャークラスを持っています:
public class SQLConn {
public string connStr = System.Configuration.ConfigurationSettings.AppSettings["ConnectionString"];
private SqlConnection sqlConn;
public SqlConnection Connection()
{
sqlConn = new SqlConnection(connStr);
return sqlConn;
}
public void Open()
{
sqlConn .Open();
}
}
次のような'using'ステートメントで関数を使用する場合:
var conn = new SQLConn();
using (conn.Connection())
{
String query = "Select * from table";
objSql = new SqlCommand(query, conn.Connection());
conn.Open();
DoSomething();
}
usingステートメントconn.Connection()
はSqlConnectionオブジェクトを返すため、接続を自動的に破棄しますか?または、SqlConnクラスにIDisposableとカスタムDisposeメソッドを実装する必要がありますか?
これはまったく良い方法ですか?レガシーコードを使用していますが、まだORMを使用できませんが、この既存のパターンを単純化してSQL接続を管理/作成する方法はありますか?