Resumen

Conecta tu API .NET a PostgreSQL paso a paso con Entity Framework Core y el proveedor Npgsql. Aquí verás cómo instalar dependencias, configurar la connection string, recrear migrations compatibles, crear la base de datos y validar todo con Swagger. También se muestran recomendaciones ante errores de build y verificación con pgAdmin 4.

¿Cómo instalar Npgsql y la herramienta de migraciones en .NET?

Para iniciar, es clave agregar la biblioteca correcta y contar con la herramienta de Entity Framework para migrations.

  • Abre Manage NuGet Packages y busca “PostgreSQL”.
  • Instala la biblioteca: Npgsql.EntityFrameworkCore.PostgreSQL.
  • Verifica la herramienta de migraciones global de EF.

Comandos útiles:

# Instalar la herramienta de EF Core para migraciones
dotnet tool install --global dotnet-ef

Puntos clave: - Debe aparecer una respuesta de instalación correcta para confirmar la herramienta. - Esta herramienta permite ejecutar comandos como migrations add y database update.

¿Cómo configurar la connection string y el DbContext para PostgreSQL?

La configuración se realiza en el archivo de app settings y en el arranque de la aplicación. No puedes tener dos conexiones activas al mismo tiempo: si había SQL Server, coméntala y deja solo PostgreSQL.

  • En app settings, define la connection string con: host, database, username y password.
  • En el arranque, registra el AppDbContext usando UseNpgsql y la cadena configurada.

Ejemplo de appsettings.json:

{
  "ConnectionStrings": {
    "PostgreSql": "Host=tu-servidor;Database=tu-base;Username=tu-usuario;Password=12345"
  }
}

Registro del DbContext en .NET:

// Program.cs (o donde configures servicios)
services.AddDbContext<AppDbContext>(options =>
{
    options.UseNpgsql(Configuration.GetConnectionString("PostgreSql"));
});

Claves prácticas: - UseNpgsql es el método para configurar PostgreSQL. - Si tenías una base in memory o SQL Server, desactívala para evitar conflictos.

¿Cómo recrear migraciones, actualizar la base y probar con Swagger?

Si ya existían migrations hechas para SQL Server, no sirven para PostgreSQL. Se identifican por tipos como Nvarchar o esquemas como SQL Server Identity. La solución: eliminar esas migrations y generar unas nuevas para PostgreSQL.

Pasos para migraciones y base de datos:

# Crear una nueva migración compatible con PostgreSQL
dotnet ef migrations add InitialCreate

# Si aparece error de build, compila manualmente el proyecto (rebuild) y reintenta

# Crear/actualizar la base de datos
dotnet ef database update

Consejos ante errores: - Si el comando muestra un error de conexión pero al final aparece “Done”, verifica en pgAdmin 4. - En pgAdmin 4, usa Refresh en el servidor para ver si se creó la base (por ejemplo, se observó “cursos Api DB”). - Revisa esquemas y tablas: deben existir task y user.

Prueba con Swagger: - Autentícate como siempre con: plagci 12345. - En el endpoint de user, realiza un POST sin enviar el ID: se genera automáticamente. - Ejemplo de datos: nombre “Miguel” y correo “email@email.com”. - Verifica con GET: debe aparecer el registro creado con ID 1.

Siguientes pasos recomendados: - Prueba todos los endpoints: GET, POST, update, delete. - Valida el flujo completo en task y user. - Confirma que Entity Framework funciona igual con in memory, SQL Server o PostgreSQL, según la configuración activa.

¿Te quedó alguna duda o quieres compartir tu configuración de connection strings o migrations? Deja tu comentario y cuéntanos qué endpoints ya probaste en Swagger.