Где вы храните строку подключения к базе данных? - PullRequest
6 голосов
/ 03 сентября 2008

Я обычно храню свою строку подключения в web.config или в настройках приложения моего проекта Visual Studio. Приложение, над которым я сейчас работаю, совершает много поездок в базу данных, что означает, что оно будет искать строку подключения каждый раз. Должен ли я помещать строку подключения в кеш или мне нужно хранить весь объект SqlConnection в кеше, чтобы исключить необходимость все время открывать и закрывать их?

Обновление : похоже, консенсус заключается в том, чтобы сохранить строку подключения в файле конфигурации и оставить кэширование в доверяющей руке ADO.NET

Ответы [ 6 ]

4 голосов
/ 03 сентября 2008

Я бы не кэшировал объект соединения, который разрушит встроенный пул соединений - ADO.NET сам будет эффективно обрабатывать соединения (при условии, что вы их создадите и закроете).

Что касается самой строки подключения, вам не нужно кэшировать ее, если вы загружаете ее из подключения - объект диспетчера подключений в среде .NET 2.0 загружает конфигурацию в память при первом обращении к ней, поэтому нет повторных поездок в файловую систему.

3 голосов
/ 03 сентября 2008

Файл web.config кэшируется. Но даже если это не так, не забывайте, что ado.net поддерживает пул соединений - он не открывает новое соединение каждый раз, когда вы звоните в базу данных.

1 голос
/ 03 сентября 2008

Я обычно кеширую строку подключения в глобальном объекте конфигурации в моем приложении. Это значение загружается в начале выполнения программы, откуда бы оно ни хранилось - файл, зашифрованный файл, файл конфигурации и т. Д. ADO.NET очень хорошо кэширует объекты подключения к базе данных, поэтому я не буду кэшировать объект SqlConnection .

0 голосов
/ 30 января 2010

Возможное решение: Сохраните исходную зашифрованную строку подключения (в Web.Config или App.Config) для входа в систему, которому разрешено запускать только одну хранимую процедуру для аутентификации. Чем динамически переключать логин из зашифрованных значений, хранящихся в таблице конфигурации в БД.

0 голосов
/ 03 сентября 2008

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

Редактировать: Что ОН сказал

0 голосов
/ 03 сентября 2008

Храните его в файле конфигурации. Используйте надежную стратегию доступа к данным, предоставляемую такими инструментами, как NHibernate или Linq to Sql.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...