Вам не нужно «сохранять» соединения с базой данных. Оставьте повторное использование и кэширование соединений с базой данных .NET Framework.
Просто используйте этот вид кода и избавьтесь от соединения, как только вы закончите его использовать:
using(var connection = new SqlConnection(...))
{
//Your Code here
}
Нет проблем при выполнении кода выше для каждого вызова базы данных. Информация о соединении кэшируется, и второе «новое» соединение с базой данных очень быстрое.
Чтобы узнать больше о "ConnectionPooling", вы можете прочитать это MSDN Articel .
Edit:
Если вы используете пул, соединение не очень близко, но возвращается в пул. Начальное «рукопожатие» между клиентом и базой данных выполняется только один раз для каждого соединения в пуле.
Используемый вами компонент также поддерживает пул соединений:
READ1
Чтение 2