如何在运行ASP.NET应用程序的整个时间内保持SqlConnection处于打开状态?

时间:2016-01-19 02:07:04

标签: c# asp.net sql-server asp.net-mvc

在ASP.NET中与数据库交互的示例中,我总是看到

using ( SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["MyDatabase"].ConnectionString) )
{
   // ... Do some stuff
}

但我想知道,我不应该一直保持联系吗?为什么我想要打开和关闭连接所涉及的所有开销是没有意义的。我不应该con成为我模特的static成员吗?

2 个答案:

答案 0 :(得分:12)

SqlConnection不是线程安全的。

由于ASP.Net请求可以到达多个线程,因此您不能这样做。

SqlConnection是already pooled;你没有什么可担心的。

答案 1 :(得分:2)

根据我的经验,如果您不使用连接,则不希望保持连接打开状态。连接到DB时使用Using语句要清晰得多。这里有一个很好的讨论...... https://stackoverflow.com/questions/7072583/is-it-ok-to-leave-a-sql-connection-open