Работа идёт через Firebird .NET Provider.
connection.Close();
connection.Dispose();
не помогают...
Как результат, не получается сделать совершенно простую штуку: Из программы создать базу, что-то с ней поделать, а потом её удалить.
Может я чего-то важного не знаю?

UPDATE:
Проблема полностью решилась. Как это часто и бывает, это оказалась фича, а не баг

Надо было всего лишь подкрутить строку подключения добавив туда "Pooling=false". По умолчанию он true, а когда он true, то закрывающиеся соединения на самом деле не закрываются а складываются в пул. Собственно из-за этого и проблемы были.