Integración de Entity Framework Core con PostgreSQL a un proyecto vacío .NET

Integración de Entity Framework Core con PostgreSQL a un proyecto vacío .NET

Enrique Pérez • 2024-06-02

Introducción

En este artículo, te guiaré a través del proceso de integración de PostgreSQL con Entity Framework Core en un proyecto ASP.NET MVC limpio. Seguiremos una estructura organizada para facilitar la implementación y asegurarnos de que tu proyecto esté bien estructurado desde el principio.

Estructura Recomendada

Para una mejor organización y separación de responsabilidades, es recomendable crear un proyecto adicional para la capa de datos. Llamaremos a este proyecto .Data.

Paso 1: Crear el Proyecto .Data

  1. Instalar Paquetes NuGet
    • En el proyecto .Data, instala los siguientes paquetes NuGet, asegurándote de que todas las versiones coincidan:
      • Microsoft.AspNetCore.Identity.EntityFrameworkCore
      • Microsoft.EntityFrameworkCore.Tools (si estás usando Visual Studio)
      • Npgsql.EntityFrameworkCore.PostgreSQL
  2. Crear la Carpeta Data
    • Dentro del proyecto .Data, crea una carpeta llamada Data.
    • Crear la Clase ApplicationDbContext
      • Dentro de la carpeta Data, crea una clase llamada ApplicationDbContext que herede de DbContext.
      • Asegúrate de que ApplicationDbContext tenga un constructor que acepte opciones como parámetro:
      public class ApplicationDbContext: DbContext
      {
      	public ApplicationDbContext(DbContextOptions<ApplicationDbContext> options)
      		: base (options)
      	{
      	}
      }

Paso 2: Configurar el Proyecto Web

  1. Instalar Paquete NuGet
    • En el proyecto web, instala el paquete Microsoft.EntityFrameworkCore.Design en la misma versión que los paquetes del proyecto .Data.
  2. Agregar la Cadena de Conexión
    • Abre el archivo appsettings.json y agrega la cadena de conexión:
    {
    	"ConnectionStrings": {
    		«DefaultConnection»: «Host=localhost;Database=MyDatabase;Username=MyUser;Password=MyPassword»
    	}
    }
  3. Configurar la Clase Program.cs
    • En el archivo Program.cs del proyecto principal, obtén la cadena de conexión desde appsettings.json y agrega PostgreSQL a Entity Framework en los servicios:
    var connectionString = builder.Configuration.GetConnectionString(«DefaultConnection»);
    builder.Services.AddDbContext<ApplicationDbContext>(options => {
    	options.UseNpgsql(connectionString);
    	options.UseQueryTrackingBehavior(QueryTrackingBehavior.NoTracking);
    });

Paso 3: Crear la Base de Datos - EF Migrations

Para crear la base de datos vacía, sigue estos pasos:

Desde la Consola de Administrador de Paquetes en Visual Studio

 

Desde la Terminal

  1. Abre la Terminal en el proyecto web.
  2. Ejecuta el siguiente comando:
    • dotnet ef database update --project [MyProject.Data path]
 

Conclusión

Siguiendo estos pasos, has integrado con éxito PostgreSQL con Entity Framework Core en tu proyecto ASP.NET MVC. Ahora tienes una base sólida para desarrollar tu aplicación con una estructura clara y organizada. ¡Feliz codificación!

¿Necesitas ayuda? ¡Escríbenos!