Você já criou um banco de dados após rodar a aplicação Code-First pela primeira vez, mas o que é isso depois de iniciar a segunda vez? Um novo banco de dados é criado toda vez que o aplicativo é executado? E quanto ao ambiente de produção? Como faço para mudar o banco de dados quando mudo o modelo de domínio? Para lidar com esses cenários, você deve usar uma das políticas de inicialização do banco de dados.
Existem quatro estratégias diferentes de inicialização de banco de dados:
- CriarBancode de DadosSeNãoExistes:É issoinadimplênciaprocedimento de inicialização. Como o nome sugere, ele criará um banco de dados se ele não existir conforme a configuração. No entanto, se você mudar a classe do modelo e depois executar a aplicação com esse inicializador, uma exceção é lançada.
- DropCreateDatabaseIfModelChanges: Se sua classe modelo (classe entidade) mudou, esse inicializador deletará o banco de dados existente e criará um novo. Assim, você não precisa se preocupar em manter esquemas de banco de dados quando as classes de modelo mudam.
- DropCreateDatabaseAlways: Como o nome sugere, esse inicializador exclui o banco de dados existente toda vez que você executa sua aplicação, independentemente de sua classe modelo ter mudado ou não. Isso é útil quando você precisa de um novo banco de dados toda vez que executa uma aplicação, por exemplo, ao desenvolver uma aplicação.
- Inicializador de banco de dados personalizado: Você também pode criar seu próprio inicializador personalizado se o acima não atender aos seus requisitos, ou se quiser usar o inicializador acima para realizar o processo de inicialização de outros bancos de dados.
Para usar uma das estratégias de inicialização do banco de dados acima, você deve definir o Inicializador do Banco de Dados usando a classe na classe de contexto do Banco de Dados, conforme mostrado abaixo:
Você também pode criar um inicializador de banco de dados personalizado herdando um dos inicializadores, como mostrado abaixo:
No exemplo acima, o SchoolDBInitializer é uma classe inicializadora personalizada derivada de CreateDatabaseIfNotExists. Isso separa o código de inicialização do banco de dados da classe de contexto.
Configure o Inicializador de Banco de Dados no arquivo de configuração
Você também pode definir o inicializador de banco de dados no arquivo de configuração. Por exemplo, para definir a configuração padrão de valor inicial no app.config:
Você pode configurar um inicializador de banco de dados personalizado da seguinte forma:
Fechar Inicializador de Banco de Dados
Você pode desativar o inicializador do banco de dados para sua aplicação.Assumindo que você não queira perder dados existentes em produção, pode fechar o inicializador, da seguinte forma:
Você também pode desligar o inicializador no arquivo de configuração, por exemplo:
|