2016-03-04 4 views
0

Я новичок в Entity Framework и наследую проект, который его использует. В настоящее время я в ситуации, когда все, кажется, синхронизировано, но EF настаивает на том, что это не так. Короче говоря,Не удается синхронизировать модель и базу данных Entity Framework

  • Все мои миграции отображаются в [__MigrationsHistory], поэтому я бы предположил, что все они применяются.
  • Когда я пытаюсь запустить приложение WPF при поддержке моей модели я получаю исключение The model backing the <Database> context has changed since the database was created.
  • Учитывая это, я полагаю, есть изменения в модели, которые должны быть перенесены в базу данных, поэтому я бегу Add-Migration Test, чтобы увидеть что, по мнению EF, нужно добавить. В этом и заключается проблема - добавленная миграция пытается добавить вещи, которые уже существуют в базе данных. Например, оператор create table для таблицы, которая уже существует.
  • При запуске Update-Database после добавления вышеуказанной миграции я получаю ожидаемую ошибку,

В этот момент я сосать. Я в петле, где все кажется прекрасным, но EF считает, что это не так. Как мне примирить вещи?

+0

Вы уверены, что правильная строка соединения используется командами EF? –

+0

Да, я трижды проверил это, потому что это определенно кажется наиболее вероятной проблемой. –

ответ

1

запустить команду

Update-database -script 

Это будет генерировать и обновление SQL скрипт для вас. В этом скрипте удалите часть, где создается дублирующаяся таблица. Убедитесь, что вы запустили весь скрипт, кроме этой части. Ваша база данных и таблица миграции должны быть обновлены.

+0

Ничего себе, это действительно сработало, я думаю. Я немного удивлен, потому что мне пришлось прокомментировать все в скрипте, кроме вставки в '[__MigrationHistory]', - буквально ничего не обновлял в схеме. Но сейчас все работает. Благодарю. –

+0

Это правильно. Где-то вдоль линии вы перешли на миграцию и базу данных. Ваша таблица миграции и схема БД обновлены. –

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