I've modified System.Data.SQLite to use a recent version of SQLite engine that automatically enforces foreign keys without using custom triggers.
I'm also using SubSonic 2.x but this would apply to any ORM frameworks using SQLite that are 'open late close early'.
How would you ensure that the statement 'PRAGMA foreign_keys=true' is called on every SQLiteConnection.Open()? It has to be called or foreign keys don't work.