我将业务逻辑实现在具有静态方法的简单静态类中。每个方法在调用时打开/关闭 SQL 连接:
public static void DoSomething()
{
using (SqlConnection connection = new SqlConnection("..."))
{
connection.Open();
// ...
connection.Close();
}
}
但是我认为传递连接对象并避免打开和关闭连接 节省性能。很久以前,我用 OleDbConnection类做了一些测试(不确定 SqlConnection) ,它确实有助于这样工作(据我所知) :
//pass around the connection object into the method
public static void DoSomething(SqlConnection connection)
{
bool openConn = (connection.State == ConnectionState.Open);
if (!openConn)
{
connection.Open();
}
// ....
if (openConn)
{
connection.Close();
}
}
所以问题是-我应该选择方法(a)还是方法(b) ?我在另一个堆栈溢出问题中读到,连接池为我节省了性能,我根本不需要麻烦..。
另外,这是一个 ASP.NET 应用程序——连接只存在于网络请求中,而不是一个双赢的应用程序或服务。