Este artigo é um artigo espelhado de tradução automática, por favor clique aqui para ir para o artigo original.

Vista: 37510|Resposta: 1

[Fonte] Estratégia de inicialização de banco de dados no EF 6 Code-First

[Copiar link]
Publicado em 17/04/2019 15:56:46 | | |
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:








Anterior:Criptografia Ilustrada 3ª Edição
Próximo:Vídeo da classe de emprego do Vale do Silício em abril de 2018
 Senhorio| Publicado em 07/02/2021 15:08:59 |
Permitir que o Entity Framework comece não é mais válido __MigrationHistory tabela
https://www.itsvse.com/thread-3255-1-1.html

Disclaimer:
Todo software, material de programação ou artigos publicados pela Code Farmer Network são apenas para fins de aprendizado e pesquisa; O conteúdo acima não deve ser usado para fins comerciais ou ilegais, caso contrário, os usuários terão todas as consequências. As informações deste site vêm da Internet, e disputas de direitos autorais não têm nada a ver com este site. Você deve deletar completamente o conteúdo acima do seu computador em até 24 horas após o download. Se você gosta do programa, por favor, apoie um software genuíno, compre o registro e obtenha serviços genuínos melhores. Se houver qualquer infração, por favor, entre em contato conosco por e-mail.

Mail To:help@itsvse.com