Миграции Entity Framework перестали обнаруживать обновления POCO - PullRequest
36 голосов
/ 13 декабря 2011

Я использую миграции Entity Framework и Entity Framework для реализации решения с использованием кода вначале и автоматической миграции.

Раньше он работал отлично, но внезапно перестал обнаруживать обновления, которые я делаю для своего POCO. Теперь, когда я добавляю новое свойство (очень простые свойства, такие как age или email) и выполняю Update-Database, ничего не происходит, и это дает мне следующее:

Укажите флаг '-Verbose' для просмотра команд SQL, выполняемых во время миграции.
Найдено 0 ожидающих явных миграций: [].
Добавление начальных данных (если метод Seed переопределен в классе Migrations Settings).

и ничего не обновляется!

Кто-нибудь знает, почему это происходит?

1 Ответ

2 голосов
/ 25 февраля 2012

Это может быть по двум причинам:

  1. В коде есть какой-то другой DbContext, поэтому автоматические миграции не могут решить, какой контекст использовать.
  2. Существует новое изменение, которое зацикливает сравнение схемы и модели кода, поэтому EF просто не может найти разницу.

В целом, автоматические миграции просты и быстры в реализации, но их использование небезопасно. На каком-то этапе такие миграции могут привести к сбою.

Несколько лет назад я разработал крошечный ORM на основе Linq2SQL, AcroDB Library , и в нем использовались автомиграции SubSonic . Почти то же самое, что могут сделать миграции EF сейчас. Это было идеально для небольших проектов и небольшого количества данных для обработки или изменения, но когда проект вырос до 15+ таблиц, это стало кошмаром. Вот почему в последнее время MS объявила о миграции с использованием кода . Они более защищены и лучше для проекта. Кроме того, вы можете взглянуть на Migrator.Net (к этому времени он немного лучше EF).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...