Współdziałanie

Microsoft.Data.Sqlite używa SQLitePCLRaw do interakcji z natywną biblioteką SQLite. SQLitePCLRaw udostępnia cienki interfejs API platformy .NET za pośrednictwem natywnego interfejsu API SQLite. SqliteConnection i SqliteDataReader zapewniają dostęp do bazowych obiektów SQLitePCLRaw, umożliwiając bezpośrednie wywoływanie tych interfejsów API.

W poniższym przykładzie pokazano, jak wywołać sqlite3_trace, aby zapisać wykonane instrukcje SQL na konsolę.

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

W poniższym przykładzie pokazano użycie funkcji sqlite3_stmt_status aby zobaczyć, ile kroków maszyny wirtualnej SQLite wykona instrukcję SQL skompilowaną do:

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

Obiekty SQLitePCLRaw udostępniają nawet wskaźnik do obiektów natywnych, umożliwiając P/Invoke dodatkowych natywnych interfejsów API SQLite.