我知道创建自定义数据访问层不是一个好主意,除非您:1) 确切地知道您在做什么,和/或 2) 有非常具体的需求。但是,我正在维护一些使用自定义数据访问层的遗留代码,其中每个方法看起来像这样:
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
}
}
我在想,使用微软的企业库可以让我免于设置和拆除,即每次方法调用都连接到 SQL Server。我的这种想法正确吗?