Interopérabilité

Microsoft.Data.Sqlite utilise SQLitePCLRaw pour interagir avec la bibliothèque SQLite native. SQLitePCLRaw fournit une API .NET mince sur l’API SQLite native. SqliteConnection et SqliteDataReader fournir l’accès aux objets SQLitePCLRaw sous-jacents vous permettant d’appeler ces API directement.

L’exemple suivant montre comment appeler sqlite3_trace pour écrire des instructions SQL exécutées dans la console :

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

L’exemple suivant montre comment appeler sqlite3_stmt_status pour voir le nombre d’étapes de machine virtuelle SQLite compilées dans une instruction SQL :

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

Les objets SQLitePCLRaw exposent même un pointeur vers les objets natifs vous permettant d’appeler des API SQLite natives supplémentaires.