Entity Framework Core (EF Core) es un marco de mapeo relacional de objetos (ORM) que permite a los desarrolladores interactuar con bases de datos usando objetos .NET. Una de las características esenciales de EF Core es su capacidad para manejar migraciones de bases de datos.
Este artículo demuestra las migraciones de EF Core, por qué son cruciales y cómo usarlas con un ejemplo. Entonces, para comenzar:
C# ha existido durante bastante tiempo y continúa desarrollándose, obteniendo características más mejoradas. medio.com
Las migraciones de EF Core son una forma de administrar los cambios en el esquema de su base de datos a lo largo del tiempo. Cuando realiza cambios en su modelo de base de datos (como agregar o eliminar tablas o columnas), puede crear una migración que describa esos cambios.
Luego, las migraciones se utilizan para actualizar el esquema de la base de datos para que coincida con el nuevo modelo.
Las migraciones de EF Core son esenciales porque le permiten evolucionar el esquema de su base de datos con el tiempo mientras conserva los datos.
Sin migraciones, tendría que modificar manualmente el esquema de su base de datos cada vez que realice cambios en su modelo, lo que puede llevar mucho tiempo y ser propenso a errores.
Las migraciones también brindan una forma de crear una versión del esquema de su base de datos para que pueda rastrear fácilmente los cambios y volver a las versiones anteriores si es necesario.
Para usar las migraciones de EF Core, deberá seguir algunos pasos:
Cree un nuevo proyecto EF Core. El primer paso es crear un nuevo proyecto EF Core en Visual Studio. Puede hacer esto seleccionando "Crear un nuevo proyecto", y luego seleccionando "Aplicación web ASP.NET Core" y eligiendo la plantilla "Aplicación web (Modelo-Vista-Controlador)".
Crear un contexto de base de datos. El siguiente paso es crear una clase de contexto de base de datos. Esta clase administra las interacciones entre sus objetos .NET y la base de datos. Para crear un contexto de base de datos, cree una nueva clase en su proyecto y heredé de la clase DbContext.
public class MyDbContext : DbContext { public MyDbContext(DbContextOptions<MyDbContext> options) : base(options) { } }
Crear un modelo de base de datos
Después de crear un contexto de base de datos, deberá crear un modelo de base de datos. Este modelo representa la estructura de su base de datos y EF Core lo usa para generar tablas y columnas de base de datos.
Para crear un modelo de base de datos, cree una nueva clase en su proyecto y defina sus propiedades como campos de base de datos.
public class MyModel { public int Id { get; set; } public string Name { get; set; } public int Age { get; set; } }
Habilitar migraciones de EF Core
A continuación, debe habilitar las migraciones de EF Core en su proyecto. Para hacer esto, abra la Consola del administrador de paquetes e ingrese el siguiente comando:
PM> Install-Package Microsoft.EntityFrameworkCore.Tools
Este paquete contiene las herramientas necesarias para crear y administrar migraciones de EF Core.
Crear una migración
Con las migraciones de EF Core habilitadas, puede crear su primera migración. Para crear una migración, abra la consola del administrador de paquetes e ingrese el siguiente comando:
PM> Add-Migration InitialCreate
Esto creará una nueva migración llamada "InitialCreate" que describe los cambios que ha realizado en su modelo de base de datos. Puede ver el contenido de la migración en la carpeta "Migraciones" de su proyecto.
Actualizar la base de datos
Después de crear una migración, puede actualizar el esquema de la base de datos para que coincida con el nuevo modelo. Para hacer esto, abra la Consola del administrador de paquetes e ingrese el siguiente comando:
PM> Update-Database
Esto aplicará la migración a la base de datos y actualizará su esquema.
Veamos un ejemplo del uso de Migraciones de EF Core. Supongamos que queremos crear una tabla simple de "Estudiantes" con dos columnas: "Id" y "Nombre". Comenzaremos creando un nuevo proyecto de aplicación web ASP.NET Core en Visual Studio.
Cree un nuevo proyecto EF Core. Cree un nuevo proyecto de aplicación web de ASP.NET Core en Visual Studio. Seleccione la plantilla "Aplicación web (modelo-vista-controlador)" y elija "Cuentas de usuario individuales" para la autenticación. Nombre el proyecto "EFCoreMigrationsExample".
Crear un contexto de base de datos. Cree una nueva clase llamada "MyDbContext" en la carpeta "Modelos" del proyecto y heredé de la clase DbContext.
using Microsoft.EntityFrameworkCore; namespace EFCoreMigrationsExample.Models { public class MyDbContext : DbContext { public MyDbContext(DbContextOptions<MyDbContext> options) : base(options) { } public DbSet<Student> Students { get; set; } } }
La propiedad "Students" es un DbSet que representa la tabla "Students" de nuestra base de datos.
Crear un modelo de base de datos
Cree una nueva clase "Estudiante" en la carpeta "Modelos" del proyecto y defina sus propiedades.
namespace EFCoreMigrationsExample.Models { public class Student { public int Id { get; set; } public string Name { get; set; } } }
Habilitar migraciones de EF Core
Abra la consola del administrador de paquetes e ingrese el siguiente comando para instalar el paquete de herramientas EF Core:
PM> Install-Package Microsoft.EntityFrameworkCore.Tools
Crear una migración
Abra la consola del administrador de paquetes e ingrese el siguiente comando para crear una migración:
PM> Add-Migration InitialCreate
Esto creará una nueva migración llamada "InitialCreate" que describe los cambios que hemos realizado en nuestro modelo de base de datos.
El archivo de migración debería verse así:
using Microsoft.EntityFrameworkCore.Migrations; namespace EFCoreMigrationsExample.Migrations { public partial class InitialCreate : Migration { protected override void Up(MigrationBuilder migrationBuilder) { migrationBuilder.CreateTable( name: "Students", columns: table => new { Id = table.Column<int>(type: "int", nullable: false) .Annotation("SqlServer:Identity", "1, 1"), Name = table.Column<string>(type: "nvarchar(max)", nullable: true) }, constraints: table => { table.PrimaryKey("PK_Students", x => x.Id); }); } protected override void Down(MigrationBuilder migrationBuilder) { migrationBuilder.DropTable( name: "Students"); } } }
La migración crea una nueva tabla llamada "Estudiantes" con columnas para "Id" y "Nombre".
Actualice la base de datos Abra la Consola del administrador de paquetes e ingrese el siguiente comando para actualizar el esquema de la base de datos:
PM> Update-Database
Esto aplicará la migración a la base de datos y actualizará su esquema.
Ahora podemos agregar, actualizar y eliminar estudiantes en nuestra base de datos usando EF Core. Por ejemplo, podemos agregar un nuevo estudiante a la base de datos de esta manera:
using EFCoreMigrationsExample.Models; namespace EFCoreMigrationsExample.Controllers { public class HomeController : Controller { private readonly MyDbContext _context; public HomeController(MyDbContext context) { _context = context; } public IActionResult Index() { var student = new Student { Name = "John" }; _context.Students.Add(student); _context.SaveChanges(); return View(); } } }
Este código crea una nueva instancia de la clase Student y establece su propiedad Name en "John". A continuación, agrega al alumno a la base de datos de alumnos y guarda los cambios en la base de datos.
Las migraciones de EF Core brindan una manera conveniente de administrar los cambios en el esquema de la base de datos en su aplicación.
Este artículo muestra cómo crear un esquema de base de datos simple mediante migraciones de EF Core, incluida la creación de un DbContext, la definición de un modelo, la realización de una migración y la actualización del esquema de la base de datos.
Esto es solo el comienzo de lo que EF Core puede hacer. Puede usar EF Core para consultar y manipular datos, crear relaciones complejas entre tablas y más. Con su facilidad de uso y su amplia gama de funciones, EF Core es una excelente opción para crear aplicaciones basadas en datos en .NET.
Este artículo lo ayudó a comenzar con las migraciones de EF Core. Si tiene alguna pregunta o comentario, por favor déjelos a continuación. ¡Feliz codificación!
C# Publicación , LinkedIn , Instagram , Twitter , Dev.to
También publicado aquí