Я немного поискал, а также прочитал FAQ на сайте SQLite, но мне не удалось найти ответ на свой вопрос.
Вполне может быть, что мой подход к базе данных ошибочен, но на данный момент я хотел бы хранить свои данные в нескольких базах данных SQLite3, так что это означает отдельные файлы. Меня очень беспокоит повреждение данных из-за возможного сбоя моего приложения или отключение электроэнергии во время изменения данных в моих таблицах.
Для обеспечения целостности данных мне в основном нужно сделать следующее:
begin transaction
modify table(s) in database #1
modify table(s) in database #2
commit, or rollback if error
Поддерживается ли это SQLite? Кроме того, я использую sqlite.net, в частности последнюю версию, основанную на SQLite 3.6.23.1.
ОБНОВЛЕНИЕ
Еще один вопрос - это то, что люди обычно добавляют в свои модульные тесты? Я всегда тестирую базы данных, но никогда не сталкивался с подобными случаями. И если да, то как бы вы это сделали? Это почти похоже на то, что вам нужно передать другой параметр методу, например bool test_transaction, и, если он истинен, генерировать исключение между доступами к базе данных. Затем проверьте после вызова, чтобы убедиться, что первый набор данных не попал в другую базу данных. Но, возможно, это то, что покрывается тестами SQLite и не должно не появляться в моих тестовых примерах.