Прочитать на английском

Поделиться через


Совместимость

Microsoft.Data.Sqlite используется SQLitePCLRaw для взаимодействия с собственной библиотекой SQLite. SQLitePCLRaw предоставляет тонкий API .NET через собственный API SQLite. SqliteConnection и SqliteDataReader предоставляет доступ к базовым объектам 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, чтобы увидеть, сколько шагов виртуальной машины SQLite скомпилировано в инструкции SQL:

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 даже предоставляют указатель на собственные объекты, что позволяет вам выполнять P/Invoke для дополнительных собственных API SQLite.