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

С# Code-Первая миграция, вверх/вниз?

Начнется использование команды add-migration в консоли диспетчера пакетов для создания миграций для моей модели. Мой вопрос: вверх и вниз. Я полагаю, что целью метода down является удаление всех зависимостей и удаление таблиц, если они уже находятся в базе данных? Также, что метод down будет выполнен до метода up? Метод вверх тогда обратный, создавать/обновлять таблицы/индексы и т.д.?

Иногда, когда я использую это, метод down получает много таблиц создания, которые затем отбрасываются? Недавно он создал и сбросил множество таблиц, и почти то же самое произошло в методе up. Почему?

4b9b3361

Ответ 1

Метод Up обновляет вашу базу данных от текущего состояния (представленного вашей предыдущей миграцией) до состояния, ожидаемого вашей текущей миграцией кода. Метод Down выполняет обратную операцию - он удаляет все изменения из текущей миграции и возвращает базу данных в состояние, ожидаемое предыдущей миграцией. Это как установка/удаление миграции. Только один из этих методов выполняется, когда вы вызываете update-database. Чтобы использовать метод Down, вы должны явно указать целевую миграцию для вашего обновления. Если целевая миграция является старой, API миграции автоматически использует метод Down и понижает вашу базу данных.

Ответ 2

Просто добавь к @Ladislav Mrnka. Мне нужно было использовать Down() в первый раз и потребовалось некоторое время, чтобы заставить его работать, поэтому:

Update-Database -Target:201407242157114_46

Где моя последняя миграция - 47 (где добавлен новый материал). Вот хорошее объяснение о том, как откатить базу данных и удалить плохую миграцию.

Надеюсь, что это поможет другим ученикам магов:)