2013-02-22 3 views
2

Я удалил базу данных разработки и папку Migrations из проекта. При запуске модульного теста с использованием моей базы данных разработки проектов воссоздается. Я не понимаю, почему работает обновление-базы данных дает мнеПочему я не могу получить миграцию Entity Framework в исходное состояние?

PM> Update-Database 
Specify the '-Verbose' flag to view the SQL statements being applied to the target database. 
Applying code-based migrations: [201302201840012_wieleDoWielu]. 
Applying code-based migration: 201302201840012_wieleDoWielu. 

Почему миграция: 201302201840012_wieleDoWielu запоминается? Как удалить его? Где хранится?

С наилучшими пожеланиями Przemysław Staniszewski

+0

Возможно __MigrationHistory таблица в базе данных? Проверьте столбец «MigrationId». Почему вы хотите удалить это? – Raxr

+0

я проверить это, таким образом, 1. удалить папку Migration 2. запустить Enable-Миграции -EnableAutomaticMigrations -Force который создал папку Миграции 3. удаление базы данных тестовый модуль 4. запустить, которые создают базу данных 5. Удалить из [DBO] . [__MigrationHistory] 6. запустить Add-Migration -IgnoreChanges и получить 7. Невозможно создать явную миграцию, поскольку ожидаются следующие явные миграции: [201302201810047_InitialCreate, 201302201840012_wieleDoWielu]. Примените ожидающие явные миграции, прежде чем пытаться генерировать новую явную миграцию. –

+0

Вы пытались обновить базу данных перед добавлением-перенастройкой. Это не должно быть необходимым в вашем сценарии, но каждый раз, когда я имел эту ошибку, это исправляло это. – Judo

ответ

9

Вот ответ. Восстановите папку миграции и файл миграции (восстановите свой проект). Затем следуйте инструкциям на моем телефоне http://pawel.sawicz.eu/entity-framework-reseting-migrations/

1) Обновление базы данных -Targetmigration: 0 - это ключ! Первые
2) Wipe из таблицы/миграции (вы не должны удалить всю папку)
3) Добавить-Migration Initialise
4) Update-Database

+0

Я только что сделал это из вашей статьи, прежде чем вы напишете этот ответ (google :) он не помогает мне –

+0

После обновления базы данных -Targetmigration: 0 все таблицы удаляются с помощью __MigrationHistory также –

+0

делает обновление базы данных -Targetmigration: 0 следует удалить все таблицы в базе данных? –

0

Попробуйте эти команды Sqllocaldb.exe остановка V11.0 Sqllocaldb.exe удалить V11.0

Это должно удалить ссылку. Возможно, вам придется прокомментировать некоторые изменения, прежде чем делать это, а затем повторно установить изменения в модель перед выполнением миграции.

Я новичок в этом, так что надеюсь, что я понимаю вашу проблему, потому что это звучит так же, как в последнее время.

Более постоянным решением может быть добавить следующий код в ваш файл Globel и заменить его тем, что вам нужно. В статье для этого можно найти по ссылке ниже также:

Database.SetInitializer(new DropCreateDatabaseIfModelChanges<PersonContext>()); 

http://ilmatte.wordpress.com/2012/12/05/entity-framework-5-code-first-enabling-migrations-in-a-real-project/