Este artículo es un artículo espejo de traducción automática, por favor haga clic aquí para saltar al artículo original.

Vista: 37510|Respuesta: 1

[Fuente] Estrategia de inicialización de bases de datos en EF 6 Code-First

[Copiar enlace]
Publicado en 17/4/2019 15:56:46 | | |
Ya has creado una base de datos tras ejecutar la aplicación Code-First por primera vez, pero ¿qué es después de empezar la segunda vez? ¿Se crea una nueva base de datos cada vez que se ejecuta la aplicación? ¿Y qué pasa con el entorno de producción? ¿Cómo cambio la base de datos cuando cambio el modelo de dominio? Para manejar estos escenarios, debes utilizar una de las políticas de inicialización de la base de datos.

Existen cuatro estrategias diferentes de inicialización de bases de datos:

  • CrearBase de DatosSiNoExistes:Esto espredeterminadoprocedimiento de inicialización. Como su nombre indica, creará una base de datos si no existe según la configuración. Sin embargo, si cambias la clase modelo y luego ejecutas la aplicación con este inicializador, se lanza una excepción.
  • DropCreateDatabaseIfModelChanges: Si tu clase modelo (clase entidad) ha cambiado, este inicializador eliminará la base de datos existente y creará una nueva. Así que no tienes que preocuparte por mantener los esquemas de la base de datos cuando cambian las clases de modelo.
  • DropCreateDatabaseAlways: Como su nombre indica, este inicializador elimina la base de datos existente cada vez que ejecutas tu aplicación, independientemente de si tu clase modelo ha cambiado o no. Esto es útil cuando necesitas una nueva base de datos cada vez que ejecutas una aplicación, por ejemplo al desarrollar una aplicación.
  • Inicializador de base de datos personalizado: También puedes crear tu propio inicializador personalizado si lo anterior no cumple con tus requisitos, o si quieres usar el inicializador anterior para realizar el proceso de inicialización de otras bases de datos.

Para utilizar una de las estrategias de inicialización de la base de datos anteriores, debes configurar el Inicializador de la base de datos usando la clase en la clase de contexto de la base de datos, como se muestra a continuación:




También puedes crear un inicializador de base de datos personalizado heredando uno de los inicializadores, como se muestra a continuación:




En el ejemplo anterior, el SchoolDBInitializer es una clase inicializadora personalizada derivada de CreateDatabaseIfNotExists. Esto separa el código de inicialización de la base de datos de la clase de contexto.

Configura el inicializador de base de datos en el archivo de configuración

También puedes configurar el inicializador de base de datos en el archivo de configuración. Por ejemplo, para establecer la configuración predeterminada de valor inicial en app.config:




Puedes configurar un inicializador de base de datos personalizado de la siguiente manera:




Cerrar inicializador de base de datos

Puedes desactivar el inicializador de la base de datos de tu aplicación.Suponiendo que no quieras perder datos existentes en producción, puedes cerrar el inicializador, de la siguiente manera:



También puedes desactivar el inicializador en el archivo de configuración, por ejemplo:








Anterior:Criptografía Ilustrada 3ª Edición
Próximo:Vídeo de la clase de empleo de Silicon Valley en abril de 2018
 Propietario| Publicado en 7/2/2021 15:08:59 |
Permitir que el Entity Framework inicie, ya no sea válido __MigrationHistory tabla
https://www.itsvse.com/thread-3255-1-1.html

Renuncia:
Todo el software, materiales de programación o artículos publicados por Code Farmer Network son únicamente para fines de aprendizaje e investigación; El contenido anterior no se utilizará con fines comerciales o ilegales; de lo contrario, los usuarios asumirán todas las consecuencias. La información de este sitio proviene de Internet, y las disputas de derechos de autor no tienen nada que ver con este sitio. Debes eliminar completamente el contenido anterior de tu ordenador en un plazo de 24 horas desde la descarga. Si te gusta el programa, por favor apoya el software genuino, compra el registro y obtén mejores servicios genuinos. Si hay alguna infracción, por favor contáctanos por correo electrónico.

Mail To:help@itsvse.com