Мне нужно программно удалить базовую базу данных EF.Нет проблем, верно?Получите контекст, вызовите ctx.Database.EnsureDeleted (), и все готово.
За исключением случаев, когда БД используется, вы используете пул соединений (есть веская причина для этого), вы можете столкнуться с ситуацией, когда вы не можете удалить базу данных.
Еще в дни EF6 у меня был собственный инициализатор БД, который переопределял InitializeDatabase следующим образом (установка БД в однопользовательский режим, поэтому никаких другихсоединения могут мешать)
public override void InitializeDatabase(AudmDatabaseContext context)
{
context.Database.ExecuteSqlCommand(TransactionalBehavior.DoNotEnsureTransaction
, string.Format("ALTER DATABASE [{0}] SET SINGLE_USER WITH ROLLBACK IMMEDIATE", context.Database.Connection.Database));
base.InitializeDatabase(context);
}
Теперь мне интересно .. как вы это делаете (или что-то еще, что дает мне тот же эффект) с использованием EF core 2.1?