Rozszerzenia

SqLite obsługuje ładowanie rozszerzeń w czasie wykonywania. Rozszerzenia obejmują takie elementy jak dodatkowe funkcje SQL, sortowania, tabele wirtualne i inne.

Platforma .NET zawiera dodatkową logikę lokalizowania bibliotek natywnych w dodatkowych miejscach, takich jak przywołyzowane pakiety NuGet. Niestety, SQLite nie może wykorzystać tej logiki; bezpośrednio wywołuje interfejs API platformy do ładowania bibliotek. W związku z tym może być konieczne zmodyfikowanie PATHzmiennych środowiskowych , LD_LIBRARY_PATHlub DYLD_LIBRARY_PATH przed załadowaniem rozszerzeń SQLite. W usłudze GitHub znajduje się przykład , który demonstruje znajdowanie plików binarnych dla bieżącego środowiska uruchomieniowego wewnątrz przywoływalnego pakietu NuGet.

Aby załadować rozszerzenie, wywołaj metodę LoadExtension . Microsoft.Data.Sqlite zapewni, że rozszerzenie pozostanie załadowane, nawet jeśli połączenie zostanie zamknięte i ponownie otwarte.

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

Uwaga

Metoda LoadExtension została dodana w wersji 3.0.

Zobacz też