我的业务逻辑在简单的静态类中实现,并使用静态方法实现。这些方法中的每一个都打开/关闭SQL连接:

public static void DoSomething()
{
    using (SqlConnection connection = new SqlConnection("..."))
    {
        connection.Open();

        // ...

        connection.Close();
    }
}

但是我认为将连接对象传递到周围并避免打开和关闭连接saves performance 。我很久以前做了一些测试OleDbConnectionClass(不确定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)吗?我在另一个Stackoverflow的问题中读到,连接汇总为我节省了性能,我根本不必打扰…

PS。这是一个ASP.NET应用 - 连接仅在Web重点期间存在。不是win-app或服务。

答案

Stick to option a

连接池是您的朋友。

来自: stackoverflow.com