С# Code-Первая миграция, вверх/вниз?
Начнется использование команды add-migration в консоли диспетчера пакетов для создания миграций для моей модели. Мой вопрос: вверх и вниз. Я полагаю, что целью метода down является удаление всех зависимостей и удаление таблиц, если они уже находятся в базе данных? Также, что метод down будет выполнен до метода up?
Метод вверх тогда обратный, создавать/обновлять таблицы/индексы и т.д.?
Иногда, когда я использую это, метод down получает много таблиц создания, которые затем отбрасываются? Недавно он создал и сбросил множество таблиц, и почти то же самое произошло в методе up. Почему?
Ответы
Ответ 1
Метод Up
обновляет вашу базу данных от текущего состояния (представленного вашей предыдущей миграцией) до состояния, ожидаемого вашей текущей миграцией кода. Метод Down
выполняет обратную операцию - он удаляет все изменения из текущей миграции и возвращает базу данных в состояние, ожидаемое предыдущей миграцией. Это как установка/удаление миграции. Только один из этих методов выполняется, когда вы вызываете update-database
. Чтобы использовать метод Down
, вы должны явно указать целевую миграцию для вашего обновления. Если целевая миграция является старой, API миграции автоматически использует метод Down
и понижает вашу базу данных.
Ответ 2
Просто добавь к @Ladislav Mrnka. Мне нужно было использовать Down() в первый раз и потребовалось некоторое время, чтобы заставить его работать, поэтому:
Update-Database -Target:201407242157114_46
Где моя последняя миграция - 47 (где добавлен новый материал). Вот хорошее объяснение о том, как откатить базу данных и удалить плохую миграцию.
Надеюсь, что это поможет другим ученикам магов:)