Подтвердить что ты не робот

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

Я изучаю EF4.3 Migration, и я прочитал эти две статьи из блога команды 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

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

Спасибо!

4b9b3361

Ответ 1

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

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

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

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

Ответ 2

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