Есть ли какая-либо команда в миграции EF на основе кода для повторного создания базы данных - PullRequest
0 голосов
/ 26 января 2019

Я использую ASP.NET MVC4. Я переключаюсь на тестовую базу данных, которая уже существует. Существует ли какая-либо команда переноса на основе кода для удаления и повторного создания базы данных, например, Update-Database-DropCreate .

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

Я пытался Update-Database -force, но он не создает базу данных заново.

Ответы [ 2 ]

0 голосов
/ 27 января 2019

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

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

0 голосов
/ 26 января 2019

Если вы делаете это с помощью команд миграции, вы можете просто запустить команду с -TargetMigration 0 и затем снова выполнить Update-Database.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...