英語で読む

次の方法で共有


相互運用性

Microsoft.Data.Sqlite では、 SQLitePCLRaw を使用してネイティブ SQLite ライブラリと対話します。 SQLitePCLRaw では、ネイティブ SQLite API に対してシン .NET API が提供されます。 SqliteConnectionSqliteDataReader 基になる SQLitePCLRaw オブジェクトへのアクセスを提供し、これらの API を直接呼び出します。

次の例では、sqlite3_trace を呼び出して、実行された SQL ステートメントをコンソールに書き込む方法を示します。

C#
// Get the underlying sqlite3 object
var db = connection.Handle;
sqlite3_trace(
    db,
    (_, statement) => Console.WriteLine(statement),
    null);

また、次の例では、sqlite3_stmt_status を呼び出して、SQL ステートメントでコンパイルされた SQLite 仮想マシンのステップの数を確認します。

C#
// Get the underlying sqlite3_stmt object
var stmt = reader.Handle;
var steps = sqlite3_stmt_status(
    stmt,
    SQLITE_STMTSTATUS_VM_STEP,
    resetFlg: 0);
Console.WriteLine($"VM operations: {steps}");

SQLitePCLRaw オブジェクトではネイティブ オブジェクトへのポインターも公開され、追加のネイティブ SQLite API を P/Invoke できます。