Conectar API .NET con PostgreSQL usando Entity Framework
Clase 18 de 21 • Curso de APIs con .NET
Contenido del curso
Estructura de una Web API
- 7

Configuración CORS en .NET: solución al error
07:08 min - 8

Rutas en APIs .NET con parámetros
12:50 min - 9

Documentación de APIs con OpenAPI y Swagger en .NET
14:25 min - 10

Middlewares en ASP.NET: pipeline y custom middleware
10:32 min - 11

Inyección de dependencias en .NET: ILogger
09:18 min - 12

Middleware para autenticación básica en .NET
08:17 min
Arquitectura y Middlewares
- 13

Configuración de Entity Framework Core en .NET
07:31 min - 14

Modelos C# y relaciones con Entity Framework
10:01 min - 15

Servicios con Entity Framework para ASP.NET
13:51 min - 16

Cómo crear controladores API en .NET
14:47 min - 17

Conectar .NET a SQL Server con Entity Framework
09:51 min - 18

Conectar API .NET con PostgreSQL usando Entity Framework
Viendo ahora - 19

Clean Architecture en APIs .NET
09:08 min - 20

Pruebas unitarias con Copilot y xUnit
09:05 min - 21

Qué sigue después de tu API con .NET
02:16 min
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.