Supporto per chiave esterna in SQLite3

Secondo questa discussione del 2010, una proprietà di stringa di connessione “EnforceFKConstraints” doveva essere implementata nelle future versioni di SQLite. Qualcuno sa se gli sviluppatori sono riusciti a farlo?

In caso contrario, c’è un altro modo per abilitare il supporto per le chiavi esterne senza eseguire “PRAGMA foreign_keys = ON” su ciascuna connessione? Ho bisogno di questo per assicurarmi che le eliminazioni siano sempre in cascata.

Il futuro sviluppo del provider ADO.NET System.Data.SQLite per SQLite è fatto da questo gruppo . Il progetto è attualmente in stato di migrazione e alcune funzionalità non sono nemmeno disponibili ora (che erano disponibili nella versione 1.0.66, che è stata mantenuta per l’ultima volta da Robert Simpson (autore della libreria originale)).

In base all’ultimo codice sorgente disponibile nel trunk “EnforceFKConstraints” non è supportato. Tuttavia esiste una stringa di connessione con foreign keys che ha il valore predefinito False , forse fa il lavoro? Prova a includere foreign keys=True proprietà nella stringa di connessione. Assicurati di usare l’ultima build stabile da qui .

Aggiornare. Dopo aver guardato più a fondo nella fonte, sono quasi sicuro che questa proprietà stringa di connessione sta facendo esattamente quello che vuoi.