質問

SQLite エンジンの最新バージョンを使用するようにSystem.Data.SQLiteを変更しましたカスタムトリガーを使用せずに外部キーを自動的に適用します。

SubSonic 2.xも使用していますが、これは適用されますSQLiteを使用し、 'open late close early'である ORM フレームワークへ。

>

ステートメント「PRAGMA foreign_keys = true」がすべてのSQLiteConnection.Open()で呼び出されることをどのように確認しますか?呼び出さなければならないか、外部キーが機能しません。

役に立ちましたか?

解決

これを修正するために、SQLiteConnectionクラスのConnectionStringに「外部キー」プロパティを追加しました。

外部キー= ON 外部キー= OFF

他のヒント

最新バージョンのSQLiteを使用する場合は、System.Data.SQLiteを変更する必要はありません。System.Data.SQLiteのManagedOnlyバージョンを使用し、sqlite3.dllを最新バージョンに置き換えるだけです。外部キーのサポートを有効にするには、外部キーのサポートを有効にするsqlステートメントを実行するだけです。例:

        string databasePath = "Your database path here";
        string connectionString = "Data Source=" + databasePath;
        connection = new SQLiteConnection(connectionString);
        connection.Open();

        const string sqlString = "PRAGMA foreign_keys = ON;";
        SQLiteCommand command = new SQLiteCommand(sqlString, connection);
        command.ExecuteNonQuery();
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top