Precarga de Datos en Bases de Datos con Entity Framework

Clase 21 de 38Curso de Desarrollo Web con Blazor y .Net Core 3

Resumen

¿Cómo precargar datos en nuestra base de datos?

Para mejorar la eficiencia y evitar un tedioso ingreso manual, podemos precargar datos en nuestra base de datos sin tenerla completamente construida. Este enfoque permite integrar datos de ejemplo desde el inicio del desarrollo. Aquí te explico cómo hacerlo usando el contexto de tu aplicación.

¿Qué es el método Onmodelcreating?

El método OnModelCreating en Entity Framework Core se utiliza para configurar el modelo a medida que se construye. Este método se sobrescribe en nuestra clase que hereda de DbContext y no devuelve un valor, es de tipo void.

protected override void OnModelCreating(ModelBuilder modelBuilder)
{
    // Configuración de datos aquí
}

¿Cómo precargar entidades con datos iniciales?

Para precargar entidades, usamos el método HasData dentro de OnModelCreating. Este método permite insertar datos a nuestra base de datos sólo si no existe previamente.

  1. Agregar una categoría:

    Aquí, creamos una nueva instancia de la entidad Category y la llenamos con los datos necesarios. Esta estructura se repite para otras entidades, como bodegas y productos.

    modelBuilder.Entity<Category>().HasData(
        new Category
        {
            CategoryId = Guid.NewGuid(), // Generación de un nuevo Guid
            Name = "Aseo Hogar"
        }
    );
    
  2. Agregar múltiples categorías:

    Puedes definir múltiples instancias añadiendo más objetos dentro del método HasData, separados por comas.

    modelBuilder.Entity<Category>().HasData(
        new Category
        {
            CategoryId = Guid.NewGuid(),
            Name = "Aseo Hogar"
        },
        new Category
        {
            CategoryId = Guid.NewGuid(),
            Name = "Electrodomésticos"
        }
        // Agregar más categorías según sea necesario
    );
    

¿Cómo trabajar con entidades como bodegas?

El mismo proceso se aplica para otras entidades como Warehouse. Se usa el Guid para crear identificadores únicos. Aquí tienes un ejemplo de cómo definir una bodega.

modelBuilder.Entity<Warehouse>().HasData(
    new Warehouse
    {
        WarehouseId = Guid.NewGuid(),
        Name = "Bodega Central",
        Address = "Calle 8 con 23"
    },
    new Warehouse
    {
        WarehouseId = Guid.NewGuid(),
        Name = "Bodega Norte",
        Address = "Calle Norte con Occidente"
    }
);

¿Cómo finalizar la creación de la base de datos?

Después de configurar todos nuestros datos iniciales, el siguiente paso es aplicar las migraciones y crear nuestra base de datos. Este proceso asegura que las tablas no solo existan, sino que también se poblen con los datos definidos.

Aplicar migraciones y actualizar la base de datos

  1. Agregar una migración:

    Se crea una migración utilizando el comando en la consola del Package Manager:

    Add-Migration InitialCreate
    

    Una vez creada, se ejecuta una actualización para aplicar estos cambios:

    Update-Database
    
  2. Verificar y poblar la base de datos:

    Luego de ejecutar los comandos, puedes verificar si la base de datos y sus tablas se han creado usando herramientas como SQL Server Management Studio. Asegúrate de refrescar la vista de las bases de datos para comprobar la existencia de las nuevas tablas y datos.

Con estos pasos, no solo hemos creado una base de datos robusta usando Entity Framework Core, sino también hemos optimizado el flujo de desarrollo al precargar datos esenciales. Sigue explorando y mantente motivado, ya que estas habilidades son fundamentales para tu avance en el desarrollo de software.