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