Я добавил EF 5 в свой проект через Nuget и включил миграции с помощью команды "Enable-Migrations". Затем я назвал "Add-Migration" для генерации базового кода для генерации схемы.
Затем я добавил свойство одному из моих объектов домена (свойство string, называемому "TestProperty" ) и добавил сопоставление в файл EntityTypeConfiguration (мы игнорируем соглашения на данный момент).
Вызов "Add-Migration" снова вызывает ошибку:
Unable to generate an explicit migration because the following explicit migrations are pending: [201303262144218_Initial]. Apply the pending explicit migrations before attempting to generate a new explicit migration.
Но вызов "Update-Database" создает исключение sql, поскольку таблицы уже существуют:
There is already an object named 'Customer' in the database
В моем конструкторе для моего DbContext я пробовал различные стратегии обновления, например:
Database.SetInitializer<UnitOfWork>(new DropCreateDatabaseAlways<UnitOfWork>());
Я пропустил что-то очевидное? Я попробовал решение здесь, но это не сработало: Автоматические миграции для ASP.NET
Спасибо
EDIT: обновление Ключом к прохождению первого шага является создание начальной миграции, а затем удаление сгенерированного кода из методов Up и Down (http://thedatafarm.com/blog/data-access/using-ef-migrations-with-an-existing-database/).
Затем я смогу обновить модель и карту EF, а затем запустить Add-Migration. Это создает миграцию с правильным кодом Up и Down.
Проблема заключается в попытке применить обновление. Update-Database создает ошибку "Невозможно обновить базу данных, чтобы она соответствовала текущей модели, потому что есть ожидающие изменения и автоматическая миграция отключена... автоматическая миграция. Установите DbMigrationsConfiguration.AutomaticMigrationsEnabled в true, чтобы включить автоматическую миграцию. Вы можете использовать команду "Добавить-Миграция", чтобы записать изменения ожидающих моделей в перенос на основе кода ". Хорошо, поэтому я снова пытаюсь выполнить добавление-перенаправление и производит другую миграцию с тем же кодом, что и последний.
Я запускаю Update-Database и снова получаю ту же ошибку. Я пытаюсь "Update-Database -TargetMigration 201304080859556_MyMigration -Force", но это создает "Указанная целевая миграция" 201304080859556_MyMigration "не существует. Убедитесь, что целевая миграция относится к существующему идентификатору миграции" - он делает!
Очень расстраивает!