Microsoft.Data.Sqlite 會使用 SQLitePCLRaw 來與原生 SQLite 連結庫互動。
SQLitePCLRaw 透過原生 SQLite API 提供精簡的 .NET API。
SqliteConnection 和 SqliteDataReader 提供對底層 SQLitePCLRaw 物件的存取權,讓您能直接呼叫這些 API。
下列範例示範如何呼叫 sqlite3_trace,將執行的 SQL 陳述式寫入主控台:
// Get the underlying sqlite3 object
var db = connection.Handle;
sqlite3_trace(
db,
(_, statement) => Console.WriteLine(statement),
null);
下列範例示範呼叫 sqlite3_stmt_status 以查看 SQL 陳述式編譯成的 SQLite 虛擬機器步驟數目:
// 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 來調用其他原生的 SQLite API。