сколько экземпляров SqlConnection я должен использовать - PullRequest
10 голосов
/ 03 февраля 2010

Справочная информация:У меня есть приложение, в котором я хорошо отделил логику интерфейса от логики среднего уровня, которая обрабатывает запросы к базе данных.Я делаю много пользовательских сортировок и сужений, поэтому я не использую много SqlDataSources и вместо этого вызываю множество хранимых процедур с SqlCommands.

Я использую проверку подлинности с помощью форм для создания защищенных подкаталогов.В файлах web.config в защищенных каталогах у меня есть больше строк подключения, которые ссылаются на пользователей с более высокими привилегированными ролями.

Вопрос:Должен ли я разделить объект SqlConnection на своем среднем уровне, чтобы вырезать повторяющийся код, или я должен создать новый экземпляр для каждой операции?Совместное использование SqlConnection Я мог бы создать экземпляр, если мне нужно изменить строки подключения, чтобы получить доступ к защищенным хранимым процедурам.Есть ли здесь лучшая практика?

Ответы [ 3 ]

12 голосов
/ 03 февраля 2010

Не беспокойтесь о совместном использовании для экономии ресурсов. .NET справится с этим за вас, по умолчанию он создает пулы соединений. Напишите код, чтобы он был ясным и понятным, и пусть .NET позаботится об этих деталях.

10 голосов
/ 03 февраля 2010

Создайте столько SqlConnections, сколько вам нужно, как можно быстрее, используя оператор using:

using (var connection = new SqlConnection(...)) {
  connection.Open();
  ...
}

Sql-соединения берутся из пула соединений, который автоматически разрешит вам конфликт.

См .: http://msdn.microsoft.com/en-us/library/8xx3tyca(VS.80).aspx

2 голосов
/ 03 февраля 2010

Создать новый (и утилизировать правильно) и использовать пул соединений .

...