Я провел некоторый поиск, а также прочитал 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.
UPDATE
Еще один вопрос - это то, что люди обычно добавляют в свои юнит-тесты? Я всегда тестирую базы данных, но никогда не было такого случая. И если так, как бы вы это сделали? Это почти как если бы вы передавали в метод другой параметр, такой как bool test_transaction, и, если это так, генерируйте исключение между обращениями к базе данных. Затем проверьте после вызова, чтобы убедиться, что первый набор данных не попал в другую базу данных. Но, возможно, это то, что рассматривается в тестах SQLite, и в моих тестовых примерах должно отображаться , а не .