Подтвердить что ты не робот

Как удалить и воссоздать с нуля существующую базу данных EF Code First

Я использую EF Code First с EF 5 в VS 2012. Я использую команду PM update-database, и у меня есть простой метод семени, чтобы заполнить некоторые таблицы примерами данных.

Я хотел бы удалить и воссоздать свой x.mdb. История обновлений, похоже, не синхронизирована. Если я прокомментирую все свои DBSets в моем контексте, update-database работает без ошибок, но оставляет некоторые таблицы в БД. Поскольку у меня нет ценных данных в БД, это кажется самым простым для reset всем.

Как я могу это сделать?

4b9b3361

Ответ 1

Если я понимаю это правильно...

Если вы хотите start clean:

1) Вручную удалите свой БД - где бы он ни находился (я предполагаю, что у вас есть сортировка вашего соединения) или пустым, но проще/безопаснее удалить все вместе - так как есть system __MigrationHistory table - вам тоже нужно удалить.

2) Удалите все migration files - которые находятся под Migrations - и называются номерами и т.д. - удалите их все,

3) Восстановите свой проект, содержащий миграции (и остальные), - и убедитесь, что ваш проект настроен для автоматической сборки (что иногда может вызвать проблемы, но маловероятно для вас),

4) Запустите Add-Migration Initial снова - затем Update-Database

Ответ 2

Если вы создали правильный путь для создания своих миграций с помощью команды Add-Migration "Name_Of_Migration", вы можете сделать следующее, чтобы получить чистый старт (reset, с потерей данных, конечно):

  • Update-database -TargetMigration:0

    Обычно ваша БД пуста, поскольку выполнялись методы down.

  • Update-database

    Это восстановит вашу БД до текущей миграции

Ответ 3

Одиночный вкладыш для удаления, создания и посева из консоли диспетчера пакетов:

update-database -TargetMigration:0 | update-database -force

Kaboom.

Ответ 4

Для EntityFrameworkCore вы можете использовать следующее:

Update-Database -Migration 0

Это приведет к удалению всех миграций из базы данных. Затем вы можете использовать:

Remove-Migration

Чтобы удалить миграцию. Наконец, вы можете воссоздать свою миграцию и применить ее к базе данных.

Add-Migration Initialize
Update-Database

Проверено на EFCore v2.1.0

Ответ 6

Если вы создали свою базу данных в соответствии с этим руководством: https://msdn.microsoft.com/en-au/data/jj193542.aspx

... тогда это может сработать:

  • Удалите все файлы .mdf и .ldf в каталоге проекта
  • Перейдите в View/SQL Server Object Explorer и удалите базу данных из подкаталога (localdb)\v11.0. См. Также fooobar.com/questions/43499/...

Ответ 7

Выполните следующие шаги:

  • Удалить объект, который должен быть удален из контекста // Dbset<Item> Items{get;set;} и в Nuget Console выполните следующие команды
  • add-migration [contextName]
  • update-database -verbose

Откроется таблица (таблицы), которая не существует в Контексте, но уже создана в базе данных

Ответ 8

dbctx.Database.EnsureDeleted(); dbctx.Database.EnsureCreated();