title: How to set the 'PRAGMA foreign_keys = ON' statement with SQLitePCL
body: <p>I have been using <a href="https://sqlitepcl.codeplex.com/" rel="nofollow">SQLitePCL</a> (currently ver 3.8.7.2), and now decided to experiment with Delete and Update Cascade by turning on the Foreign Key constraint. I understand this feature is disabled by default and according to <a href="http://www.sqlite.org/foreignkeys.html#fk_enable" rel="nofollow">SQLite documentation</a>, the constraint must be enabled separately for <strong>each database connection</strong>.</p>
  
  <p>The connection string only takes a database path (for SQLitePCL anyway) and doesn't allow more flexible composite connection string of the form <code>data source=d:\foo\bar\mySqlite.db;foreign keys=ON</code>. If I have to turn on the constaint for <strong>every connection</strong> as shown below, how to turn on the constraint?</p>
  
  <p>I was expecting the <code>ISQLiteStatement</code> API to provide some means of injecting the <code>PRAGMA foreign_keys = ON</code> statement into my <strong>connection statement</strong> but see no obvious [Intellisense] method or property to achieve this. Exploring the SQLiteConnection API is not even a starter as turning on the foreign key constraint is <em>per connection</em> anyway.</p>
  
  <p>Note: <code>DeleteItemByIdQuery()</code> and <code>BindIdToDeleteItemByIdQuery()</code> methods below return SQL Query strings and details omitted for brevity.</p>
  
  <pre><code>using (ISQLiteStatement statement = new SQLiteConnection("d:\foo\bar\mySqlite.db").Prepare(DeleteItemByIdQuery()))
  {
      BindIdToDeleteItemByIdQuery(statement, id);
      SQLiteResult result = statement.Step();
  }
  </code></pre>
  
  <p>Am I overlooking something simple, or is this impossible? Help!</p>