I registered the Trace event of the SQLiteConnection.
For insert and update statements, it is triggered one time per statement.
For delete, it is called multiple times.

I found out that it seems to be related with foreign keys. If they are enabled, and another table has a foreign key reference to this table, the Trace is called multiple times, even if cascading does not delete anything in the other table. The statement shown in the TraceEventArgs is always the same (e.g. "DELETE FROM TableX WHERE ID = 1").

I find this a bit confusing, especially since I did not find any documentation about this.
Is this behaviour intended?