Tutorial de Entity Framework Core Series-26-Migración de datos

Migración de datos de Entity Framework Core

La migración es una forma de mantener la arquitectura de la base de datos sincronizada con el modelo EF Core mediante la retención de datos.
[La transferencia de la imagen de la cadena externa falló, el sitio de origen puede tener un mecanismo de cadena antirrobo, se recomienda guardar la imagen y cargarla directamente (img-K5pXisZH-1581165405062) (d: \ note \ efcore \ pic \ 28.png)]
Como se muestra en la figura anterior, la API EF Core crea un modelo EF Core a partir de clases de dominio (entidad), y la migración de EF Core creará o actualizará un esquema de base de datos basado en el modelo EF Core. Cada vez que cambia la clase de dominio, debe ejecutar una migración para mantener actualizado el esquema de la base de datos.
La migración de EF Core es un conjunto de comandos que puede ejecutar en la consola del administrador de paquetes NuGet o en la interfaz de línea de comandos (CLI) de dotnet.
La siguiente tabla enumera los comandos de migración importantes en EF Core.

Comandos de consola de Package Manager comando de línea de comando dotnet Como usar
add-migración <nombre de migración> Añadir <nombre de migración> Cree una migración agregando una instantánea de migración
Eliminar-migración Eliminar Eliminar la última instantánea de migración
Actualizar base de datos Actualizar Actualice el esquema de la base de datos en función de la última instantánea de migración
Migración de guiones Guión Generar script SQL utilizando todas las instantáneas de migración

Agregar migración

Por primera vez, definió la clase de dominio inicial. En este punto, su aplicación no tiene una base de datos para almacenar datos en su clase de dominio. Por lo tanto, primero, debe crear una migración.

Abra la consola del administrador de paquetes desde Herramientas-> NuGet Package Manager-> Package Manager Console en Visual Studio, y luego ejecute el siguiente comando para agregar la migración.

add-migration MyFirstMigration

Si está utilizando la interfaz de línea de comando dotnet, ejecute el siguiente comando.

dotnet ef migrations add MyFirstMigration

En el comando anterior, MyFirstMigration es el nombre de la migración. Esto creará tres archivos en la carpeta "Migración" del proyecto como se muestra a continuación.
Inserte la descripción de la imagen aquí

  1. <timestamp> _ <nombre de migración> .cs: archivo de migración principal, que contiene las operaciones de migración en los métodos Up () y Down () El método Up () incluye código para crear objetos de base de datos, y el método Down () incluye código para eliminar objetos de base de datos.
  2. <Timestamp> _ <nombre de migración> .Designer.cs: archivo de metadatos de migración, que contiene información utilizada por EF Core.
  3. <contextclassname> ModelSnapshot.cs: instantánea del modelo actual. Esto se utiliza para determinar los cambios realizados al crear la próxima migración.
    Ahora, después de crear la instantánea de migración, es hora de crear la base de datos.

Crear o actualizar una base de datos

Use los siguientes comandos para crear o actualizar el esquema de la base de datos.

  1. Consola de administrador de paquetes
Update-Database
  1. línea de comando dotnet
dotnet ef database update

El comando Actualizar creará una base de datos basada en el contexto y la clase de dominio y las instantáneas de migración, estas instantáneas se crean utilizando el comando add-migración o add.
Si esta es la primera migración, también se creará una tabla llamada __EFMigrationsHistory, que almacenará los nombres de todas las migraciones y cuándo se aplicarán a la base de datos.
Inserte la descripción de la imagen aquí

Eliminar migración

Si la última migración no se aplicó a la base de datos, puede eliminarla. Use el siguiente comando de eliminación para eliminar el último archivo de migración creado y restaurar la instantánea del modelo.

  1. Consola de administrador de paquetes
remove-migration
  1. línea de comando dotnet
dotnet ef migrations remove

El comando anterior eliminará la última migración y restaurará la instantánea del modelo a la migración anterior. Tenga en cuenta que si la migración se ha aplicado a la base de datos, arrojará la siguiente excepción.
La migración <nombre de migración> se ha aplicado a la base de datos. Restaurarlo e intentarlo de nuevo. Si la migración se ha aplicado a otras bases de datos, considere usar la nueva migración para revertir sus cambios.

Restaurar migración

Suponga que cambia la clase de dominio y usa el comando add-migración para crear una segunda migración llamada MySecondMigration y usa el comando Actualizar para aplicar la migración a la base de datos. Sin embargo, por alguna razón, desea restaurar la base de datos a su estado anterior. En este caso, use el comando update-database <nombre de migración> para restaurar la base de datos a la instantánea de migración anterior especificada.

  1. Consola de administrador de paquetes
Update-database MyFirstMigration
  1. línea de comando dotnet
dotnet ef database update MyFirstMigration

El comando anterior restaurará la base de datos basada en la migración llamada MyFirstMigration y eliminará todos los cambios aplicados a la segunda migración llamada MySecondMigration. Esto también eliminará la entrada MySecondMigration de la tabla __EFMigrationsHistory en la base de datos.

Nota: Esto no eliminará los archivos de migración relacionados con MySecondMigration. Use el comando remove para eliminarlo del proyecto.

Generar script SQL

Use el siguiente comando para generar un script SQL para la base de datos.

  1. Consola de administrador de paquetes
script-migration
  1. línea de comando dotnet
dotnet ef migrations script

El comando de script anterior incluirá todos los scripts migrados por defecto. Puede usar las opciones -to y -from para especificar el alcance de la migración.

Desde el comando de consola del administrador de paquetes

Puede usar la consola del administrador de paquetes en Visual Studio para ejecutar los comandos de migración en Entity Framework Core. Abra la consola del administrador de paquetes desde Herramientas-> NuGet Package Manager-> Package Manager Console en Visual Studio para ejecutar los siguientes comandos.

Consola de administrador de paquetes Uso
Marco de entidades de Get-Help Obtenga ayuda de framework de entidad para mostrar información sobre los comandos de Entity Framework
Add-Migration <Nombre de migración> Crear migración agregando una instantánea de migración
Eliminar-Migración Eliminar la última instantánea de migración
Actualizar base de datos Actualice el esquema de la base de datos en función de la última instantánea de migración
Script-Migration Generar script SQL utilizando todas las instantáneas de migración
Scaffold-DbContext Genera DbContext y clases de tipo de entidad para la base de datos especificada. Esto se llama ingeniería inversa.
Get-DbContext Obtenga información sobre el tipo DbContext
Drop-Database Eliminar la base de datos

Obtener ayuda

get-help entityframework

Add-Migration Añadir migración

get-help entityframework

Eliminar-Migración

get-help entityframework

Update-Database

get-help entityframework

Migración de guiones Migración de guiones

get-help entityframework

contexto de la base de datos del andamio scaffold-dbcontext

get-help entityframework

Get-DbContext

get-help entityframework

Drop-Database

get-help entityframework

Comandos de interfaz de línea de comando para migración

Use .NET Core Command List Interface para ejecutar los comandos básicos de Entity Framework. Para usar la CLI de .NET, agregue la <DotNetCliToolReference Include = "Microsoft.EntityFrameworkCore.Tools.DotNet" Version = "2.0.0" /> en el nodo <ItemGroup> editando el archivo .csproj del proyecto .NET Core
Abra un símbolo del sistema, luego navegue a la carpeta raíz del proyecto e ingrese dotnet ef --help para enumerar los comandos de EF Core, como se muestra a continuación.
[Falló la transferencia de la imagen de la cadena externa, el sitio de origen puede tener un mecanismo de cadena antirrobo, se recomienda guardar la imagen y cargarla directamente (img-cD0PztSl-1581165405066) (d: \ note \ efcore \ pic \ 31.png)]

Como puede ver arriba, hay tres comandos EF principales disponibles: base de datos, dbcontext y migración. La siguiente tabla enumera todos los comandos y subcomandos EF.

Comando Subcomando Uso
Base de datos soltar Eliminar la base de datos
actualizar Actualice la base de datos a la migración especificada
DbContext informacion Obtenga información sobre el tipo DbContext
lista Lista de tipos de DbContext disponibles
andamio Proporcione DbContext y tipo de entidad para la base de datos
Migración añadir Agregar nueva migración
lista Lista de migraciones disponibles
eliminar Eliminar la última migración
guión: Generar script SQL a partir de la migración

Veamos las opciones disponibles para cada comando.

Caída de la base de datos

dotnet ef database drop

Actualización de base de datos

dotnet ef database update

DbContext Info

dotnet ef dbcontext info

DbContext List

dotnet ef dbcontext list

Andamio DbContext

dotnet ef dbcontext scaffold

Añadir

dotnet ef migrations add

Lista

dotnet ef migrations list

Eliminar

dotnet ef migrations remove

Guión

dotnet ef migrations script
177 artículos originales publicados · 61 alabanzas · 170,000 vistas

Supongo que te gusta

Origin blog.csdn.net/xingkongtianyuzhao/article/details/104228019
Recomendado
Clasificación