Строки подключения

Строка подключения используется для определения способа подключения к базе данных. В Microsoft.Data.Sqlite используется стандартный синтаксис ADO.NET строк подключения — список пар ключевых слов и значений, разделенных точкой с запятой.

Ключевые слова

Microsoft.Data.Sqlite позволяет использовать следующие ключевые слова в строке подключения:

Источник данных

Путь к файлу базы данных. DataSource (без пробела) и Filename — псевдонимы этого ключевого слова.

SQLite обрабатывает относительные пути к текущей рабочей папке. Можно также указать абсолютные пути.

Если ничего не указано, SQLite создает временную базу данных на диске, которая удаляется при закрытии соединения.

Если указано :memory:, используется выполняющаяся в памяти база данных. См. сведения о выполняющихся в памяти базах данных.

Пути, начинающиеся со строки подстановки |DataDirectory|, обрабатываются так же, как и относительные пути. Если пути указаны, они становятся относительными для значения свойства домена приложения DataDirectory.

Это ключевое слово также поддерживает имена файлов в формате URI.

Режим

Режим подключения.

значение Описание
ReadWriteCreate Открывает базу данных для чтения и записи, а также создает ее, если она не существует. Это значение по умолчанию.
Чтение и запись Открывает базу данных для чтения и записи.
ReadOnly Открывает базу данных только для чтения.
Память Открывает выполняющуюся в памяти базу данных.

Cache

Режим кэширования, используемый при подключении.

значение Описание
По умолч. Используется стандартный режим базовой библиотеки SQLite. Это значение по умолчанию.
Private Для каждого подключения используется частный кэш.
Совмещаемая блокировка Для подключений используется общий кэш. Этот режим может изменить поведение блокировки транзакций и таблиц.

Пароль

Ключ шифрования. Если указать, PRAGMA key отправляется сразу после установки подключения.

Предупреждение

Пароль будет бесполезным, если шифрование не поддерживается нативной библиотекой SQLite.

Примечание.

Пароль ключевое слово добавлен в версию 3.0.

Внешние ключи

Значение, которое указывает, следует ли включить ограничения внешнего ключа.

Примечание.

Внешние ключи ключевое слово добавлены в версии 3.0.

значение Описание
Истина Отправляет PRAGMA foreign_keys = 1 сразу после установки подключения.
False Отправляет PRAGMA foreign_keys = 0 сразу после установки подключения.
(пусто) Не отправляет PRAGMA foreign_keys. Это значение по умолчанию.

Нет необходимости включить внешние ключи, если, как и в e_sqlite3, SQLITE_DEFAULT_FOREIGN_KEYS использовался для компиляции собственной библиотеки SQLite.

Рекурсивные триггеры

Значение, которое указывает, следует ли разрешить рекурсивные триггеры.

Примечание.

Ключевое слово рекурсивных триггеров добавлен в версию 3.0.

значение Описание
Истина Отправляет PRAGMA recursive_triggers сразу после установки подключения.
False Не отправляет PRAGMA recursive_triggers. Это значение по умолчанию.

Default Timeout (Время ожидания по умолчанию)

Время ожидания по умолчанию (в секундах) для выполнения команд. Значение по умолчанию — 30. Время ожидания команды — это псевдоним этого ключевое слово.

Это значение можно переопределить, используяDefaultTimeout, в свою очередь, переопределение.CommandTimeout

Примечание.

Ключевое слово времени ожидания по умолчанию добавлен в версию 6.0.

Объединение в пулы

Значение, указывающее, будет ли соединение использоваться в пуле.

Примечание.

Ключевое слово пула добавлен в версию 6.0.

значение Описание
Истина Подключение будет объединяться. Это значение по умолчанию.
False Подключение не будет использоваться в пуле.

Построитель строк подключения

Конструктор SqliteConnectionStringBuilder можно использовать как строго типизированный способ создания строк подключения. Он также обеспечивает защиту от атак путем внедрения кода в строку подключения.

var connectionString = new SqliteConnectionStringBuilder(baseConnectionString)
{
    Mode = SqliteOpenMode.ReadWriteCreate,
    Password = password
}.ToString();

Примеры

Базовая

Базовая строка подключения с общим кэшем для оптимизации параллелизма.

Внимание

Не рекомендуется смешивать режим общего кэша и ведение журнала накануне записи. Чтобы обеспечить оптимальную производительность, удалите Cache=Shared , если база данных настроена для использования ведения журнала перед записью.

Data Source=Application.db;Cache=Shared

Encrypted

Зашифрованная база данных.

Data Source=Encrypted.db;Password=MyEncryptionKey

Только для чтения

База данных с доступом только на чтение, которую приложение не может изменить.

Data Source=Reference.db;Mode=ReadOnly

В памяти

Частная выполняющаяся в памяти база данных.

Data Source=:memory:

Общая выполняющаяся в памяти база данных

Общая выполняющаяся в памяти база данных, определяемая по имени Sharable.

Data Source=Sharable;Mode=Memory;Cache=Shared

См. также