Share via


Cadeias de conexão

Uma cadeia de conexão é usada para especificar como se conectar ao banco de dados. As cadeias de conexão no 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 palavras-chave da cadeia de conexão a seguir podem ser usadas com Microsoft. Data.Sqlite:

fonte de dados

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

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

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

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

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

Essa palavra-chave também dá suporte a nomes de arquivo URI.

Modo

O modo de conexão.

Valor Descrição
ReadWriteCreate Abre o banco de dados para leitura e gravação e o cria se ele não existir. Esse é o padrão.
ReadWrite Abre o banco de dados para leitura e gravação.
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 Descrição
Padrão Usa o modo padrão da biblioteca SQLite subjacente. Esse é o padrão.
Privado Cada conexão usa um cache privado.
Compartilhado As conexões compartilham um cache. Esse modo pode alterar o comportamento de transação de bloqueio de tabela.

Senha

A chave de criptografia. Quando especificado, PRAGMA key é enviado imediatamente após abrir a conexão.

Aviso

A senha não tem efeito quando a criptografia não tem suporte na biblioteca nativa do SQLite.

Observação

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

Chaves estrangeiras

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

Observação

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

Valor Descrição
True Envia PRAGMA foreign_keys = 1 imediatamente após a abertura da conexão.
Falso Envia PRAGMA foreign_keys = 0 imediatamente após a abertura da conexão.
(vazio) Não envia PRAGMA foreign_keys. Esse é o padrão.

Não é necessário 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.

Observação

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

Valor Descrição
True Envia PRAGMA recursive_triggers imediatamente após a abertura da conexão.
Falso Não envia PRAGMA recursive_triggers. Esse é o padrão.

Tempo limite padrão

O tempo limite padrão (em segundos) para executar comandos. O valor padrão é 30. Tempo limite de comando é um alias desta palavra-chave.

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

Observação

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

Agrupamento

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

Observação

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

Valor Descrição
True A conexão será agrupada. Esse é o padrão.
Falso A conexão não será agrupada.

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

Basic

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

Cuidado

Não é recomendável misturar o modo de cache compartilhado e o registro em log antecipado. Para obter o desempenho ideal, remova Cache=Shared quando o banco de dados estiver configurado para usar o registro em log antecipado.

Data Source=Application.db;Cache=Shared

Criptografado

Um banco de dados criptografado.

Data Source=Encrypted.db;Password=MyEncryptionKey

Somente leitura

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

Data Source=Reference.db;Mode=ReadOnly

Na memória

Um banco de dados privado na memória.

Data Source=:memory:

Fragmentável na memória

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

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

Confira também