ASP.NET Core 2.2 con PostgreSQL

ASP.NET Core con PostgreSQL ¿se puede conectar?

Desde luego despues de realizar el documento donde explico como se conecta ASP.NET Core con MySQL este tutorial me ha parecido mas sencillo manteniendo Identity como esta.

La cuestión es ¿funciona Identity tal cual sin modificarlo en PostgreSQL? espero que sí porque así podré desarrollar todo más sencillo sin tocar en Identity que es precisamente lo complicado.

En este tutorial vamos a responderte a esta pregunta y si es necesario hacer cambios en Identity los realizaremos y explicaremos que cambios hemos realizado.

Este tutorial viene del tutorial de ASP.NET Core con MySQL si quieres o necesitas echale un vistazo también.

Prueba o Test sin cambios en Identity en ASP.NET Core con PostgreSQL

Prueba sín realizar cambios en ASP.NET Core con PostgreSQL si no essatisfactoria lo pondremos aquí y vamos a realizar los cambios necesarios.

Modificar la cadena de conexión

En el fichero appsetting.json dejarlo como viene aquí.

“ConnectionStrings”: {
//”DefaultConnection”: “Server=(localdb)\\mssqllocaldb;Database=aspnet-Domotica_pgsql-D32394D6-51D3-40E4-9C02-77DF929B5E10;Trusted_Connection=True;MultipleActiveResultSets=true”
//”DefaultConnection”: “Server=localhost;userid=domotica;Password=domotica;Database=domotica;”
“DefaultConnection”: “User ID=domotica;Password=domotica;Server=localhost;Port=5432;Database=domotica;Integrated Security=true;Pooling=true;”
},
“Logging”: {
“LogLevel”: {
“Default”: “Warning”
}
},
“AllowedHosts”: “*”
}

Si os dáis cuenta estoy trabajando  sobre el mismo proyecto practicamnente que en el de MySQL.

Modificar Startup.cs

public void ConfigureServices(IServiceCollection services)
{
services.Configure<CookiePolicyOptions>(options =>
{
// This lambda determines whether user consent for non-essential cookies is needed for a given request.
options.CheckConsentNeeded = context => true;
options.MinimumSameSitePolicy = SameSiteMode.None;
});

/*services.AddDbContext<ApplicationDbContext>(options =>
options.UseSqlServer(
Configuration.GetConnectionString(“DefaultConnection”)));
*/
services.AddDbContext<ApplicationDbContext>(options =>
options.UseNpgsql(
Configuration.GetConnectionString(“DefaultConnection”)));
services.AddDefaultIdentity<ApplicationUser>()
.AddDefaultUI(UIFramework.Bootstrap4)
.AddEntityFrameworkStores<ApplicationDbContext>();

services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2);
}

Clase ApplicationUser y Applicationdbcontext

La clase de ApplicationUser se queda como viene aquí y funcionara porque al cambiar Identity ya funciona en ASP.NET Core con PostgreSQL

La clase de ApplicationDbContext la hgemos dejado así p’ero realmente puedes crear las tablas que necesites usando el ORM EntityFramework.

 

Migraciones de la base de datos

Hay que realizar las migraciones de la base de datos si no funciona el:

PM> Remove-Database

Podéis jusamente borrar esos archivoos.

Hay que realizar otras vez la migración de la base de datos:

PM> Add-Migration [M1]

Trabajo directamente en la consola de paquetes nuguet me parece mas comodo que desde fuera en una consola cmd o powershell.

Creación de la base de datos

Realizamos la actualización de la base de datos que realmente será poner esa base de datos en PostgreSQL aquí dejo una captura para que veáis que he creado la base de datos y el usuario.

Así tal cual he hecho funcionar PostgreSQL os publicare todo el código que en realidad es el mismo practicamente que en el proyecto ASP.NET Core con MySQL.

Cómo podéis ver nos ha creado todas las tablas en PostgreSQL

Espero que os haya gustado el tutorial y si os ha gustado me gustaría comentarios sobre él.

Como véis en ASP.NET Core 2.2 con PostgreSQL no hay ningún problema para trabajar con esta gran base de datos, en mi opinión para ser totalmente software libre, es mejor que MySQL y que otras de pago como Oracle y SQL Server.

onzulin
José Luis
Jefe de proyectos

    Al usar este formulario accedes al almacenamiento y gestión de tus datos por parte de esta web. Nuestra política de privacidad política de privacidad

    Suscríbete al boletín de noticias (newsletter)

    Si quieres la última información que vamos dando sobre WordPress y creación de páginas web en otras técnologias, además de tutoriales gratis y Ebook gratis.

    Dejar un comentario