拡張機能

SQLite では、実行時の拡張機能の読み込みがサポートされます。 拡張機能には、追加の SQL 関数、照合順序、仮想テーブルなどが含まれます。

.NET には、参照先の NuGet パッケージなどの追加の場所にネイティブ ライブラリを配置するための追加のロジックが含まれています。 ただし、SQLite ではこのロジックを利用できません。プラットフォーム API を直接呼び出して、ライブラリが読み込まれます。 このため、SQLite 拡張機能を読み込む前に、 PATHLD_LIBRARY_PATH、または DYLD_LIBRARY_PATH 環境変数の変更が必要になる場合があります。 GitHub には、参照されている NuGet パッケージ内の現在のランタイムのバイナリの検索方法を示すサンプルがあります。

拡張機能を読み込むには、LoadExtension メソッドを呼び出します。 Microsoft.Data.Sqlite を使用すると、接続をいったん閉じて再び開いた場合でも、拡張機能は読み込まれたままになります。

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

注意

LoadExtension メソッドはバージョン 3.0 で追加されました。

関連項目