Я пытаюсь переименовать файл базы данных SQLite после того, как я его использую, однако файл по-прежнему открывается SQLite даже после того, как все мои соединения закрыты.
Вот пример того, что я делаю:
using (DbConnection conn = new SQLiteConnection("Data Source=test.db"))
{
conn.Open();
DbCommand command = conn.CreateCommand();
command.CommandText = "select id from test";
command.ExecuteScalar();
}
File.Move("test.db", "test.db.test");
Вызов Move
вызывает IOException. Это единственное соединение, которое я имею к этому файлу базы данных. После завершения приложения я могу переместить файл вручную без проблем. Я пробовал разные вещи, такие как явная установка Pooling=false
в строке подключения, ручной вызов Close
перед удалением соединения, явный запуск и фиксация транзакции, но, похоже, ничего из этого не помогло. Есть ли способ заставить SQLite закрыть / освободить файл базы данных, не выходя из приложения?