我应该使用多少个SqlConnection实例

Jus*_*n C 10 c# sql sql-server asp.net sqlconnection

背景:
我有一个应用程序,我很好地将我的接口逻辑与处理查询到数据库的中间层逻辑分开.我做了很多自定义排序和缩小,所以我没有使用很多SqlDataSources,而是用SqlCommands调用很多存储过程.

我正在使用表单身份验证来创建受保护的子目录.在受保护目录中的web.config文件中,我有更多连接字符串链接到具有更高特权角色的用户.

问题:
我应该在中间层共享SqlConnection对象以删除重复代码,还是应该为每个操作创建一个新实例?如果我需要更改连接字符串以访问受保护的存储过程,我可以重新实例化共享SqlConnection.这里有最好的做法吗?

Hog*_*gan 12

不要担心共享以节省资源..NET将为您管理,默认情况下它会进行连接池.编写代码清晰易懂,让.NET负责这些细节.


Jor*_*dão 10

通过using语句尽可能多地创建尽可能多的SqlConnections:

using (var connection = new SqlConnection(...)) {
  connection.Open();
  ...
}
Run Code Online (Sandbox Code Playgroud)

Sql连接来自连接池,它将自动管理您的争用.

请参阅:http://msdn.microsoft.com/en-us/library/8xx3tyca(VS.80).aspx

  • 答案为+1."使用"语法绝对是要走的路(我认为它也可以用于文件/流访问). (2认同)
  • 当然可以,任何一次性资源(实现IDisposable的类) (2认同)