3

Извините, что публиковать такой общий вопрос, но это может быть несколько ответов для нескольких ситуаций (и мне, возможно, придется воссоздать db, прежде чем я смогу получить ответ), так что здесь идет:EF6 Code Migrations - База данных отличается, но то же самое

У нас есть проект C# с использованием EF6, который успешно использовался в EF Migrations в течение нескольких месяцев. Сегодня утром, когда я пытаюсь запустить свой проект, я получаю это это все слишком знакомое сообщение об ошибке:

System.Data.Entity.Migrations.Infrastructure.AutomaticMigrationsDisabledException' occurred in EntityFramework.dll but was not handled in user code

Additional information: Unable to update database to match the current model because there are pending changes and automatic migration is disabled. Either write the pending model changes to a code-based migration or enable automatic migration. Set DbMigrationsConfiguration.AutomaticMigrationsEnabled to true to enable automatic migration.

За исключением, что я не могу найти никаких доказательств чего-либо изменив.

  • Таблица статистики __MigrationHistory базы данных соответствует Миграции в проекте.
  • Если я делаю «добавление-миграцию», он приходит с пустым. Вверх & Вниз методы.
  • Мы восстановили базу данных с нескольких ночей назад (когда мы знаем, что это сработало) в временную БД и выполнили сравнение, и никаких структурных изменений не было найдено.
  • Я даже попробовал запустить «update-database» на пустой миграции, которая работала, но ошибка все еще происходит.

Любые идеи о том, как может произойти этот сценарий?

+0

Запустили ли вы команду «Enable-Migrations»? а затем запустите «update-database». Или используйте update-database -force. Если не проверить AutomaticMigrationsEnabled и установить в AutomaticMigrationsEnabled = true – DSR

+0

«enable-migrations» говорит, что «миграции уже включены». «update-database -force» говорит «нет ожидающих явных миграций». После этого, если я запустил проект, я все равно получаю ошибку. –

+0

Использовать -ConnectionProviderName и -ConnectionString с вашей добавочной миграцией и обновленной базой данных до нужной миграции использует правильный db, у меня была что-то вроде этой проблемы в моем проекте. – Masoud

ответ

6

Мы обнаружили, что проблема. Основной проект в нашем решении был повышен с EF 6.0.2 до EF 6.1.1, но проект MVC не был.

Это не вызвало проблем, когда это было изначально сделано несколько дней назад. Но вчера член команды создал первую миграцию с новой версией (просто добавленные данные, никаких структурных изменений). Как только эта миграция закончилась, проект MVC больше не мог взаимодействовать с db.

Что, наконец, оттолкнуло нас, увидели новый продукт ProductVersion в таблице __MigrationHistory.

Как только я обновил проект MVC, проблема была решена.

Спасибо тем, кто предложил предложения. Надеюсь, если у кого-то другой будет такой же симптом, они найдут ответ среди этих сообщений.

+0

Что значит, что вы обновили проект mvc? –

+0

Модернизированная структура сущностей; ссылаясь на первый абзац в ответе. –

Смежные вопросы