2010-02-02 3 views
8

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

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

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

ответ

10

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

8

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

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

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

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

+2

+1 для ответа. Синтаксис «using» определенно способ пойти (я думаю, что он может использоваться для доступа к файлам и потокам). –

+2

Уверен, что он может, для любого ресурса, доступного (классы, реализующие IDisposable) –

Смежные вопросы