====== Класс DBConnector ======
Основное применения класса DBConnector - работа с БД из сайтов, созданных не в QP7, а также других типов приложений: десктопных приложений, сервисов и.т.д.
===== Конструкторы =====
public DBConnector(string strConnectionString)
В качестве параметра передается строка подключения к БД.
public DBConnector()
Если строка подключения не задана, значение берется из статического свойства [[#ConnectionString|ConnectionString]]
===== Основные свойства =====
==== ConnectionString ====
public static string ConnectionString { get; set; }
Строка подключения по умолчанию, используемая при создании экземпляров DBConnector, если в конструкторе строка подключения не задана явно. Инициализируется [[developer:web_config|строкой подключения qp_database из конфигурационного файла]].
==== CustomConnectionString ====
public string CustomConnectionString { get; set; }
Строка подключения, специфичная для данного экземпляра DBConnector. Если строка подключения была передана в конструкторе, то она хранится здесь и может быть изменена.
==== IsStage ====
public bool IsStage { get; set; }
Параметр, определяющий в каком режиме (live или stage) работает экземпляр класса DBConnector. По умолчанию - false. Это оказывает влияние на следующие методы:
* [[api:dbconnector:get_article#GetContentItemLinkQuery|GetContentItemLinkQuery]] и [[api:dbconnector:get_article#GetContentItemLinkIds|GetContentItemLinkIds]]
* [[api:dbconnector:notify#SendNotification|SendNotification]]
* [[api:dbconnector:mapping#GetMapFileContents|GetMapFileContents]] и [[api:dbconnector:mapping#GetDefaultMapFileContents|GetDefaultMapFileContents]]
Если сайт сделан на объектах QP7, то параметр инициализируется в соответствии с режимом, в котором был собран сайт. В противном случае учитывается значение [[developer:web_config#isLive|параметра isLive конфигурационного файла]]. Наконец, параметр может быть задан непосредственно из кода. Если ни из одного источника значение не было получено, то используется значение по умолчанию -- false.
==== CacheData ====
public bool CacheData { get; set; }
Определяет, должен ли экземпляр класса DBConnector кэшировать данные, получаемые из БД. Значение по умолчанию - true. Интервалы кэширования задаются в [[developer:web_config|конфигурационном файле]]. Данные могут кэшироваться как локально (в экземпляре), так и в общем кэше [[http://msdn.microsoft.com/ru-ru/library/system.web.httpruntime.cache.aspx|HttpRuntime.Cache]] в зависимости от доступности общего кэша и параметра [[#ForceLocalCache|ForceLocalCache]].
==== ForceLocalCache ====
public bool ForceLocalCache { get; set; }
При установке в true, заставляет экземпляр класса DBConnector принудительно использовать локальный кэш экземпляра вместо общего кэша [[http://msdn.microsoft.com/ru-ru/library/system.web.httpruntime.cache.aspx|HttpRuntime.Cache]]. Если общий кэш недоступен, то вне зависимости от значения данного параметра будет использоваться локальный кэш. Если ''CacheData == false'', то значение данного свойства игнорируется.
==== UpdateManyToMany ====
public bool UpdateManyToMany { get; set; }
Показывает, обновлять ли M2M-поля и M2O-поля при создании/обновлении статьи методом [[api:dbconnector:update_article#AddFormToContent|AddFormToContent]]. Значение по умолчанию - true. Используется LINQ-to-SQL классами.
===== Методы =====
* [[api:dbconnector:caching|Кэширование]]
* [[api:dbconnector:get_article|Получение данных статей]]
* [[api:dbconnector:modify_article|Обновление данных статей]]
* [[api:dbconnector:import_article|Массовое создание/изменение статей]]
* [[api:dbconnector:sql|Выполнение произвольных SQL-запросов]]
* [[api:dbconnector:mapping|Работа с файлом отображения]]
* [[api:dbconnector:paths|Физические и виртуальные пути]]
* [[api:dbconnector:notify|Отправка уведомлений]]
* [[api:dbconnector:other|Вспомогательные методы]]