Partilhar via


Cadeias de ligação

Uma cadeia de conexão é usada para especificar como se conectar ao banco de dados. As cadeias de conexão em Microsoft.Data.Sqlite seguem a sintaxe ADO.NET padrão como uma lista separada por ponto-e-vírgula de palavras-chave e valores.

Palavras-chave

As seguintes palavras-chave de cadeia de conexão podem ser usadas com Microsoft.Data.Sqlite:

Origem de Dados

O caminho para o arquivo de banco de dados. DataSource (sem espaço) e Filename são aliases desta palavra-chave.

SQLite trata caminhos relativos ao diretório de trabalho atual. Caminhos absolutos também podem ser especificados.

Se estiver vazio, o SQLite cria um banco de dados temporário em disco que é excluído quando a conexão é fechada.

Se :memory:, um banco de dados na memória for usado. Para obter mais informações, consulte Bancos de dados na memória.

Os caminhos que começam com a |DataDirectory| cadeia de caracteres de substituição são tratados da mesma forma que os caminhos relativos. Se definido, os caminhos são feitos em relação ao valor da propriedade de domínio do aplicativo DataDirectory.

Esta palavra-chave também suporta nomes de arquivos URI.

Modo

O modo de conexão.

valor Description
ReadWriteCreate Abre o banco de dados para leitura e gravação e o cria se ele não existir. Esta é a predefinição.
ReadWrite Abre o banco de dados para leitura e escrita.
ReadOnly Abre o banco de dados no modo somente leitura.
Memória Abre um banco de dados na memória.

Cache

O modo de cache usado pela conexão.

valor Description
Predefinido Usa o modo padrão da biblioteca SQLite subjacente. Esta é a predefinição.
Privado Cada conexão usa um cache privado.
Partilhado As conexões compartilham um cache. Este modo pode alterar o comportamento da transação e do bloqueio da tabela.

Palavra-passe

A chave de encriptação. Quando especificado, PRAGMA key é enviado imediatamente após a abertura da conexão.

Aviso

A senha não tem efeito quando a criptografia não é suportada pela biblioteca SQLite nativa.

Nota

A palavra-chave Password foi adicionada na versão 3.0.

Chaves estrangeiras

Um valor que indica se as restrições de chave estrangeira devem ser habilitadas.

Nota

A palavra-chave Foreign Keys foi adicionada na versão 3.0.

valor Description
True Envia PRAGMA foreign_keys = 1 imediatamente após a abertura da conexão.
False Envia PRAGMA foreign_keys = 0 imediatamente após a abertura da conexão.
(vazio) Não envia PRAGMA foreign_keys. Esta é a predefinição.

Não há necessidade de habilitar chaves estrangeiras se, como no e_sqlite3, SQLITE_DEFAULT_FOREIGN_KEYS foi usado para compilar a biblioteca SQLite nativa.

Gatilhos recursivos

Um valor que indica se os gatilhos recursivos devem ser habilitados.

Nota

A palavra-chave Recursive Triggers foi adicionada na versão 3.0.

valor Description
True Envia PRAGMA recursive_triggers imediatamente após a abertura da conexão.
False Não envia PRAGMA recursive_triggers. Esta é a predefinição.

Tempo Limite Predefinido

O tempo limite padrão (em segundos) para executar comandos. O valor predefinido é 30. Command Timeout é um alias desta palavra-chave.

Esse valor pode ser substituído usando DefaultTimeout que, por sua vez, pode ser substituído usando CommandTimeout.

Nota

A palavra-chave Default Timeout foi adicionada na versão 6.0.

Agrupamento

Um valor que indica se a conexão será agrupada.

Nota

A palavra-chave Pooling foi adicionada na versão 6.0.

valor Description
True A conexão será agrupada. Esta é a predefinição.
False A conexão não será agrupada.

Vfs

Um valor que indica qual sistema de arquivos virtual (VFS) implementação usar. Quando vazio ou não especificado, o VFS padrão para a plataforma é usado.

Nota

A palavra-chave Vfs foi adicionada na versão 10.0.

Construtor de cadeia de conexão

Você pode usar SqliteConnectionStringBuilder como uma maneira fortemente tipada de criar cadeias de conexão. Ele também pode ser usado para evitar ataques de injeção de cadeia de conexão.

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

Exemplos

Básica

Uma cadeia de conexão básica com um cache compartilhado para melhorar a simultaneidade.

Atenção

A mistura do modo de cache compartilhado e do registro em log de gravação antecipada é desencorajada. Para um desempenho ideal, remova Cache=Shared quando o banco de dados estiver configurado para usar o log write-ahead.

Data Source=Application.db;Cache=Shared

Encriptados

Um banco de dados criptografado.

Data Source=Encrypted.db;Password=MyEncryptionKey

Só de leitura

Um banco de dados somente leitura que não pode ser modificado pelo aplicativo.

Data Source=Reference.db;Mode=ReadOnly

Dentro da memória

Um banco de dados privado na memória.

Data Source=:memory:

Compartilhável na memória

Um banco de dados compartilhável na memória identificado pelo nome Sharable.

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

Consulte também