Chaînes de connexion
Une chaîne de connexion est utilisée pour spécifier le mode de connexion à la base de données. Les chaînes de connexion dans Microsoft.Data.Sqlite suivent la syntaxe ADO.NET standard sous la forme d’une liste de mots clés et de valeurs séparés par des points-virgules.
Mots clés
Les mots clés de chaîne de connexion suivants peuvent être utilisés avec Microsoft.Data.Sqlite :
Source de données
Chemin d'accès au fichier de base de données. DataSource (sans espace) et Filename sont des alias de ce mot clé.
SQLite traite les chemins par rapport au répertoire de travail actif. Vous pouvez également spécifier des chemins absolus.
Si la valeur est vide, SQLite crée une base de données temporaire sur disque, qui est supprimée à la fermeture de la connexion.
Si :memory:
est spécifié, une base de données en mémoire est utilisée. Pour plus d’informations, consultez Bases de données en mémoire.
Les chemins qui commencent par la chaîne de substitution |DataDirectory|
sont traités de la même manière que les chemins relatifs. S’ils sont définis, les chemins sont relatifs à la valeur de DataDirectory dans la propriété de domaine de l’application.
Ce mot clé prend également en charge les noms de fichiers d’URI.
Mode
Mode de connexion.
Valeur | Description |
---|---|
ReadWriteCreate | Ouvre la base de données pour la lecture et l’écriture, et la crée si elle n’existe pas. Il s’agit de la valeur par défaut. |
Lecture/écriture | Ouvre la base de données pour la lecture et l’écriture. |
Lecture seule | Ouvre la base de données en mode lecture seule. |
Mémoire | Ouvre une base de données en mémoire. |
Cache
Mode de mise en cache utilisé par la connexion.
Valeur | Description |
---|---|
Default | Utilise le mode par défaut de la bibliothèque SQLite sous-jacente. Il s’agit de la valeur par défaut. |
Privées | Chaque connexion utilise un cache privé. |
Partagé | Les connexions partagent un cache. Ce mode peut changer le comportement du verrouillage des transactions et des tables. |
Mot de passe
Clé de chiffrement. Quand il est spécifié, PRAGMA key
est envoyé immédiatement après l’ouverture de la connexion.
Avertissement
Le mot de passe n’a aucun effet quand le chiffrement n’est pas pris en charge par la bibliothèque SQLite native.
Notes
Le mot clé relatif au mot de passe a été ajouté dans la version 3.0.
Clés étrangères
Valeur indiquant si les contraintes de clé étrangère doivent être activées ou non.
Notes
Le mot clé relatif aux clés étrangères a été ajouté dans la version 3.0.
Valeur | Description |
---|---|
True | Envoie PRAGMA foreign_keys = 1 immédiatement après l’ouverture de la connexion. |
False | Envoie PRAGMA foreign_keys = 0 immédiatement après l’ouverture de la connexion. |
(empty) | N’envoie pas PRAGMA foreign_keys . Il s’agit de la valeur par défaut. |
Il n’est pas nécessaire d’activer des clés étrangères si, par exemple dans e_sqlite3, SQLITE_DEFAULT_FOREIGN_KEYS
a été utilisé pour compiler la bibliothèque SQLite native.
Déclencheurs récursifs
Valeur qui indique si les déclencheurs récursifs doivent être activés.
Notes
Le mot clé relatif aux déclencheurs récursifs a été ajouté dans la version 3.0.
Valeur | Description |
---|---|
True | Envoie PRAGMA recursive_triggers immédiatement après l’ouverture de la connexion. |
False | N’envoie pas PRAGMA recursive_triggers . Il s’agit de la valeur par défaut. |
Délai d’expiration par défaut
Délai d’expiration par défaut (en secondes) pour l’exécution des commandes. La valeur par défaut est 30. Command Timeout est un alias de ce mot clé.
Cette valeur peut être remplacée à l’aide de DefaultTimeout qui, à son tour, peut être remplacée à l’aide de CommandTimeout.
Notes
Le mot clé relatif au délai d’expiration par défaut a été ajouté dans la version 6.0.
Pooling
Valeur indiquant si la connexion doit être mise en pool.
Notes
Le mot clé relatif à la mise en pool a été ajouté dans la version 6.0.
Valeur | Description |
---|---|
True | La connexion est mise en pool. Il s’agit de la valeur par défaut. |
False | La connexion n’est pas mise en pool. |
Générateur de chaînes de connexion
Vous pouvez utiliser SqliteConnectionStringBuilder comme moyen fortement typé de créer des chaînes de connexion. Vous pouvez également l’utiliser pour empêcher les attaques par injection de chaînes de connexion.
var connectionString = new SqliteConnectionStringBuilder(baseConnectionString)
{
Mode = SqliteOpenMode.ReadWriteCreate,
Password = password
}.ToString();
Important
Microsoft vous recommande d’utiliser le flux d’authentification le plus sécurisé disponible. Si vous vous connectez à Azure SQL, les identités managées pour les ressources Azure sont la méthode d'authentification recommandée.
Exemples
De base
Chaîne de connexion de base avec un cache partagé pour améliorer la concurrence.
Attention
Il est déconseillé de mélanger le mode de cache partagé et la journalisation WAL (Write-Ahead Log). Pour des performances optimales, supprimez Cache=Shared
quand la base de données est configurée pour utiliser la journalisation WAL (Write-Ahead Logging).
Data Source=Application.db;Cache=Shared
Chiffré
Base de données chiffrée.
Data Source=Encrypted.db;Password=MyEncryptionKey
Lecture seule
Base de données en lecture seule qui ne peut pas être modifiée par l’application.
Data Source=Reference.db;Mode=ReadOnly
En mémoire
Base de données en mémoire privée.
Data Source=:memory:
En mémoire partageable
Base de données en mémoire partageable, identifiée par le nom Sharable.
Data Source=Sharable;Mode=Memory;Cache=Shared