문제

System.data.sqlite를 수정했습니다. 최근 버전을 사용합니다 sqlite 사용자 정의 트리거를 사용하지 않고 외래 키를 자동으로 시행하는 엔진.

나도 사용하고 있습니다 아소닉 2.X 그러나 이것은 어떤 것에도 적용됩니다 ORM '늦게 문을 닫는'sqlite를 사용한 프레임 워크.

모든 sqliteconnection.open ()에서 'pragma forex_keys = true'라는 문장이 호출되는지 어떻게 보장 하시겠습니까? 호출되거나 외국 키가 작동하지 않아야합니다.

도움이 되었습니까?

해결책

이 문제를 해결하기 위해 SqliteConnection 클래스의 ConnectionString에 '외국 키'속성을 추가했습니다.

외국 키 = 외부 키 = OFF

다른 팁

System.data.sqlite 최신 버전의 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