Cadenas de conexión
Una cadena de conexión que se usa para especificar cómo conectarse a la base de datos. Las cadenas de conexión de Microsoft.Data.SQLite siguen la sintaxis de ADO.NET estándar como una lista de palabras clave y valores separados por punto y coma.
Palabras clave
Se pueden usar las palabras clave de cadena de conexión siguientes con Microsoft.Data.SQLite:
Origen de datos
Ruta de acceso al archivo de base de datos. DataSource (sin espacio) y Filename son alias de esta palabra clave.
SQLite trata las rutas de acceso relativas al directorio de trabajo actual. También se pueden especificar rutas de acceso absolutas.
Si está vacío, SQLite crea una base de datos temporal en disco que se elimina al cerrar la conexión.
Si es :memory:
, se usa una base de datos en memoria. Para más información, vea Bases de datos en memoria.
Las rutas de acceso que comienzan con la cadena de sustitución |DataDirectory|
se tratan igual que las rutas de acceso relativas. Si se establecen, las rutas de acceso son relativas al valor de propiedad de dominio de aplicación DataDirectory.
Esta palabra clave también admite nombres de archivo de URI.
Modo
Modo de conexión.
Valor | Descripción |
---|---|
ReadWriteCreate | Abre la base de datos para lectura y escritura, y la crea si no existe. Este es el valor predeterminado. |
ReadWrite | Abre la base de datos para lectura y escritura. |
ReadOnly | Abre la base de datos en modo de solo lectura. |
Memoria | Abre una base de datos en memoria. |
instancias y claves
Modo de almacenamiento en caché que usa la conexión.
Valor | Descripción |
---|---|
Default | Usa el modo predeterminado de la biblioteca de SQLite subyacente. Este es el valor predeterminado. |
Private | Cada conexión usa una caché privada. |
Shared | Las conexiones comparten una caché. Este modo puede cambiar el comportamiento del bloqueo de transacciones y tablas. |
Contraseña
La clave de cifrado. Cuando se especifica, PRAGMA key
se envía inmediatamente después de abrir la conexión.
Advertencia
La contraseña no tiene ningún efecto cuando la biblioteca de SQLite nativa no admite el cifrado.
Nota
La palabra clave Contraseña se agregó en la versión 3.0.
Claves externas
Un valor que indica si se deben habilitar restricciones de clave externa.
Nota
La palabra clave Claves externas se agregó en la versión 3.0.
Valor | Descripción |
---|---|
True | Se envía PRAGMA foreign_keys = 1 inmediatamente después de abrir la conexión. |
False | Se envía PRAGMA foreign_keys = 0 inmediatamente después de abrir la conexión. |
(vacío) | No se envía PRAGMA foreign_keys . Este es el valor predeterminado. |
No es necesario habilitar las claves externas si, como en e_sqlite3, se ha usado SQLITE_DEFAULT_FOREIGN_KEYS
para compilar la biblioteca nativa de SQLite.
Desencadenadores recursivos
Un valor que indica si se van a habilitar los desencadenadores recursivos.
Nota
La palabra clave Desencadenadores recursivos se agregó en la versión 3.0.
Valor | Descripción |
---|---|
True | Se envía PRAGMA recursive_triggers inmediatamente después de abrir la conexión. |
False | No se envía PRAGMA recursive_triggers . Este es el valor predeterminado. |
Tiempo de espera predeterminado
Tiempo de espera predeterminado (en segundos) para ejecutar comandos. El valor predeterminado es 30. Tiempo de espera predeterminado es un alias de esta palabra clave.
Este valor se puede invalidar mediante DefaultTimeout el cual, a su vez, se puede invalidar mediante CommandTimeout.
Nota
La palabra clave Tiempo de espera predeterminado se agregó en la versión 6.0.
Agrupación
Valor que indica si la conexión se agrupará.
Nota
La palabra clave Agrupación se agregó en la versión 6.0.
Valor | Descripción |
---|---|
True | La conexión se agrupará. Este es el valor predeterminado. |
False | La conexión no se agrupará. |
Generador de cadenas de conexión
Puede usar SqliteConnectionStringBuilder como una manera fuertemente tipada de crear cadenas de conexión. También se pueda usar para evitar ataques de inyección de cadenas de conexión.
var connectionString = new SqliteConnectionStringBuilder(baseConnectionString)
{
Mode = SqliteOpenMode.ReadWriteCreate,
Password = password
}.ToString();
Importante
Microsoft recomienda usar el flujo de autenticación más seguro disponible. Si se conecta a Azure SQL, el método de autenticación recomendado es Identidades administradas para recursos de Azure.
Ejemplos
Básico
Una cadena de conexión básica con una memoria caché compartida para mejorar la simultaneidad.
Precaución
No se recomienda mezclar el modo de caché compartida y el registro de escritura anticipada. Para obtener un rendimiento óptimo, quite Cache=Shared
cuando la base de datos esté configurada para usar el registro de escritura anticipada.
Data Source=Application.db;Cache=Shared
Cifrados
Una base de datos cifrada.
Data Source=Encrypted.db;Password=MyEncryptionKey
De sólo lectura
Una base de datos de solo lectura que la aplicación no puede modificar.
Data Source=Reference.db;Mode=ReadOnly
En memoria
Una base de datos en memoria privada.
Data Source=:memory:
En memoria que se pueda compartir
Una base de datos en memoria que se puede compartir y que se identifica mediante el nombre Compartible.
Data Source=Sharable;Mode=Memory;Cache=Shared