Я создаю и удаляю базы данных на лету для некоторых интеграционных тестов. Я делаю все управление базой данных на уровне ADO.NET. Для тестов я использую Entity Framework, потому что сущности - это часть того, что я тестирую. Проблема в том, что после того, как я это сделаю:
using (ProjectEntities db = new ProjectEntities(cs)) {
}
Я больше не могу удалить базу данных. Он говорит, что он используется. Как мне выпустить его, чтобы его можно было уронить?
У меня фактически была такая же проблема на уровне ADO.NET, и я сделал следующее:
new SqlCommand("USE [master]", DatabaseConnection).ExecuteNonQuery();
но я не уверен, как выполнить что-то с таким же эффектом для соединения с Entity Framework. Я пытался вручную удалить объект db (хотя условие использования должно гарантировать это), и я также попытался вручную закрыть db.Connection. Ни то, ни другое не помогло. Если бы я мог запускать SQL напрямую без подключения к Entity Framework, я уверен, что смогу это сделать. Или, может быть, есть другой способ?