Come scaricare il database in memoria SQLite nel file con ADO.NET?

Sto usando System.Data.SQLite.dll per fare uso del database in memoria SQLite. Al termine del programma, vorrei scaricare il database in memoria in un file .db3 per il prossimo utilizzo. Come posso ottenere questo in C #?

Per quanto ne so, non esiste una funzionalità integrata per realizzare ciò in System.Data.SQLite.dll. La funzionalità tuttavia esiste nel client sqlite3.exe gestito insieme al core SQLite.

Questo è come lo farei con system.data.sqlite.dll:

  1. Ottieni istruzioni SQL per creare una nuova struttura di database.

     select sql from sqlite_master where name not like 'sqlite_%'; 
  2. Ottieni i nomi di tutte le tabelle utente.

     select name from sqlite_master where type='table' and name not like 'sqlite_%'; 
  3. Creare il database su disco in alcuni nuovi SQLiteConnection.

  4. Esegui tutte le istruzioni SQL ottenute in precedenza per creare la struttura del database nel database su disco.

  5. Chiudere la connessione separata al database su disco.

  6. Colbind il database su disco al database in memoria.

     attach 'ondisk.db3' as 'ondisk'; 
  7. Per ogni tabella utente ottenuta in precedenza, copiare il contenuto dalla memoria in ingresso al database su disco.

     insert into ondisk.TableX select * from main.TableX; insert into ondisk.TableY select * from main.TableY;