Должен ли я писать собственную схему объединения соединений?Должен ли я реализовать свою схему объединения соединений?
(Вопрос переписан снова, так что я могу upvote ответов народов)
Должен ли я писать собственную схему объединения соединений?Должен ли я реализовать свою схему объединения соединений?
(Вопрос переписан снова, так что я могу upvote ответов народов)
Я предлагаю вам оставить кеш запроса только для обработки соединений ADO.NET и использовать connection pooling (по умолчанию). Просто сделайте это ниже в любом месте, которое вы хотите, и оно будет закрыто/правильно установлено:
using (SqlConnection cn = new SqlConnection(connectionString))
{
using (SqlCommand cm = new SqlCommand(commandString, cn))
{
cn.Open();
cm.ExecuteNonQuery();
}
}
Я предполагаю, что @Downvoter поражает меня по тем же причинам, что и @LukeH. Почему вы не отправляете ответ, так как вы так критичны? –
Я настоятельно рекомендую вам не поставить соединение в кэше в первую очередь.
Всякий раз, когда вам нужно подключение, просто откройте новый (как можно позже). Когда вы закончите, просто закройте/уберите его (как можно раньше). Вероятно, вы знаете, что самый простой шаблон для обеспечения этого поведения - это блок using
.
Очень дешево открывать и закрывать соединения из пула, и пул соединений включен по умолчанию. Пусть пул соединений обрабатывает данные, такие как кеширование и т. Д.: Это то, для чего оно есть, и нет никакой пользы - и много потенциальных ловушек - если вы сделаете это сами.
@ Downvoter: Позаботьтесь о том, почему? – LukeH
Потому что это не отвечает на вопрос, он делает это. Это похоже на ответ на вопросы веб-службы, говоря: не используйте веб-службы, потому что могут произойти плохие вещи. Я не могу удалить вопрос, поэтому я переведу все это. – MatthewMartin
@MatthewMartin: Если все StackOverflow было ответило на все * неправильные * вопросы, которые задают люди (вместо того, чтобы предполагать, что, возможно, плакат лает по неправильному дереву целиком), для него было бы намного хуже. Вы не можете обвинять кого-то в попытке помочь вам решить серьезную проблему с кодом, который вы изначально разместили. –
Что ...? Почему вы хотите установить соединение в кеш? Вы имеете в виду, что хотите добиться объединения пулов? – RPM1984