Extensions

SQLite prend en charge le chargement d’extensions au moment de l’exécution. Les extensions incluent des fonctions SQL supplémentaires, des classements, des tables virtuelles, etc.

.NET inclut une logique supplémentaire pour localiser des bibliothèques natives dans des emplacements supplémentaires tels que des packages NuGet référencés. Malheureusement, SQLite ne peut pas tirer parti de cette logique ; il appelle l’API de plateforme directement pour charger les bibliothèques. Pour cette raison, vous devrez peut-être modifier les variables d’environnement PATH, LD_LIBRARY_PATH, ou DYLD_LIBRARY_PATH avant le chargement des extensions SQLite. Il existe un exemple sur GitHub qui montre la recherche de fichiers binaires pour le runtime actuel à l’intérieur d’un package NuGet référencé.

Pour charger une extension, appelez la méthode LoadExtension. Microsoft.Data.Sqlite garantit que l’extension reste chargée même si la connexion est fermée et rouverte.

// Load the SpatiaLite extension
connection.LoadExtension("mod_spatialite");

var command = connection.CreateCommand();
command.CommandText =
@"
    SELECT spatialite_version()
";
var version = (string)command.ExecuteScalar();

Console.WriteLine($"Using SpatiaLite {version}");

Note

La méthode LoadExtension a été ajoutée dans la version 3.0.

Voir aussi