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