カスタム データ アクセス レイヤーを作成することは、次の場合を除き、あまり良い考えではないことを私は知っています。ただし、各メソッドが次のようなカスタム データ アクセス レイヤーを使用するレガシー コードを維持しています。
using (SqlConnection cn = new SqlConnection(connectionString))
{
using (SqlDataAdapter da = new SqlDataAdapter("sp_select_details", cn))
{
using (DataSet ds = new DataSet())
{
da.SelectCommand.Parameters.Add("@blind", SqlDbType.Bit).Value = blind;
da.SelectCommand.CommandType = CommandType.StoredProcedure;
da.SelectCommand.CommandTimeout = CommandTimeout;
da.Fill(ds, "sp_select_details");
return ds;
}
}
}
したがって、使用法は次のようになります。
protected void Page_Load(object sender, EventArgs e) {
using (Data da = new Data ("SQL Server connection string")) {
DataSet ds = da.sp_select_blind_options(Session.SessionID); //opens a connection
Boolean result = da.sp_select_login_exists("someone");//opens another connection
}
}
Microsoft の Enterprise Library を使用すると、セットアップと破棄、つまりメソッド呼び出しのたびに SQL Server に接続する必要がなくなるのではないかと考えています。私はこの考えで正しいですか?