Estensioni

SQLite supporta il caricamento delle estensioni in fase di esecuzione. Le estensioni includono funzioni SQL aggiuntive, regole di confronto, tabelle virtuali e altro ancora.

.NET include logica aggiuntiva per l'individuazione di librerie native in posizioni aggiuntive, ad esempio pacchetti NuGet a cui si fa riferimento. Sfortunatamente, SQLite non è in grado di sfruttare questa logica; chiama direttamente l'API della piattaforma per caricare le librerie. Per questo motivo, potrebbe essere necessario modificare le PATHvariabili di ambiente , LD_LIBRARY_PATHo DYLD_LIBRARY_PATH prima di caricare le estensioni SQLite. Su GitHub è disponibile un esempio che illustra come trovare i binari per il runtime corrente all'interno di un pacchetto NuGet a cui si fa riferimento.

Per caricare un'estensione, chiamare il metodo LoadExtension. Microsoft.Data.Sqlite garantisce che l'estensione rimanga caricata anche se la connessione viene chiusa e riaperta.

// 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}");

Nota

Il metodo LoadExtension è stato aggiunto nella versione 3.0.

Vedi anche