Автоматическая миграция vs миграция на основе кода

Я изучаю EF4.3 Миграция, и я прочитал эти две статьи из ado.net блог команды:

http://blogs.msdn.com/b/adonet/archive/2012/02/09/ef-4-3-code-based-migrations-walkthrough.aspx

http://blogs.msdn.com/b/adonet/archive/2012/02/09/ef-4-3-automatic-migrations-walkthrough.aspx

но после прочтения этих двух статей я все еще не понимаю, в чем разница между ними и когда использовать код на основе migraion, когда использовать автоматическую миграцию. Кто-нибудь может вести меня?

спасибо!

2 ответов


эти статьи очень ясны, поэтому, если вы не понимаете разницы, это означает, что вы не концентрировались во время чтения текста, и вы также, вероятно, не следовали тексту, кодируя примеры сами.

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

автоматической миграции иногда недостаточно. Необходимо добавить некоторые настройки в код миграции или выполнить некоторые дополнительные команды SQL, например, для преобразования данных. В таком случае вы добавляете явную миграцию на основе кода, вызывая . Явная миграция показывает весь код миграции, который будет выполняться во время миграции (дополнительная магия отсутствует).

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


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