En aquest article descrivim com utilitzar JSON amb Entity Framework Core i PostgreSQL prenent com a referència el suport millorat des d'EF Core v7 per a tipus de dades JSON, i com PostgreSQL ofereix des de fa anys els tipus json i jsonb per emmagatzemar documents JSON en columnes de taules.
PostgreSQL diferencia json i jsonb en el mode d'emmagatzematge i en capacitats d'indexació: json es guarda tal qual com a text respectant l'ordre dels camps i els espais, mentre que jsonb s'emmagatzema en format binari i facilita la creació d'índexs sobre camps JSON per a consultes ràpides.
Per treballar amb aquests tipus en una aplicació .Net Web API es recomana dissenyar la taula a la base de dades amb columnes dedicades a json i jsonb que continguin objectes niats com adreces, i a partir d'aquí mapejar aquestes columnes a classes C# que representin els objectes JSON. No incloem aquí sentències SQL literals, però la idea és tenir columnes address de tipus json i addressb de tipus jsonb juntament amb els camps habituals com id, fullname, email i createdAt.
En el model de dades d'EF Core es poden crear classes com User i Address on User conté propietats address i addressb de tipus Address. D'aquesta manera EF Core podrà serialitzar i deserialitzar automàticament els objectes niats en llegir i escriure a les columnes JSON de PostgreSQL.
La configuració del context DbContext utilitza UseNpgsql per a la cadena de connexió a PostgreSQL. Per mapejar propietats complexes com Address a columnes JSON es pot definir l'assignació a OnModelCreating utilitzant OwnsOne i el mètode ToJson per indicar que la propietat s'ha d'emmagatzemar com a JSON. Amb aquesta configuració és possible consultar camps interns del JSON des de LINQ, per exemple filtrar usuaris pel codi postal dins d'addressb sense necessitat d'escriure SQL natiu.
Pel que fa a l'arquitectura d'accés a dades, una aproximació útil és implementar un servei genèric per a operacions CRUD que rebi el DbContext i ofereixi mètodes reutilitzables, i després construir serveis específics com UserService que heretin del servei genèric per exposar mètodes utilitzats pels controladors de l'API. La injecció de dependències a Program dot cs registra el DbContext i els serveis perquè estiguin disponibles en temps d'execució.
Alguns punts pràctics i bones pràctiques observades en implementar EF Core amb PostgreSQL i JSON: l'entitat i la taula han de tenir una clau primària; en determinats casos es poden utilitzar anotacions a les propietats per especificar el tipus de columna com jsonb; per a consultes intensives als camps JSON convé utilitzar jsonb i dissenyar índexs adequats; i sempre provar la serialització i l'esquema JSON per evitar inconsistències entre l'estructura esperada per l'aplicació i les dades emmagatzemades.
Q2BSTUDIO és una empresa de desenvolupament de programari a mida especialitzada a crear solucions completes que integren bases de dades avançades, API REST i capacitats d'intel·ligència artificial. Oferim serveis d'aplicacions a mida i programari a mida, integració d'intel·ligència artificial i IA per a empreses, desenvolupament d'agents IA, visualització amb power bi i serveis d'intel·ligència de negoci. També brindem ciberseguretat avançada i gestió d'infraestructures al núvol amb serveis cloud aws i azure per desplegar i protegir les seves aplicacions i dades.
Si necessita ajuda per dissenyar una arquitectura que aprofiti EF Core i PostgreSQL amb columnes JSON, per migrar dades, optimitzar consultes amb jsonb o implementar solucions basades en IA i dashboards amb power bi, a Q2BSTUDIO podem col·laborar des de l'anàlisi inicial fins al manteniment i la seguretat. Ens enfoquem en solucions escalables, rendiment i compliment de bones pràctiques de seguretat i govern de dades.
Recursos addicionals i exemple de projecte de referència disponibles a https://github.com/gaatif/pgsql-efcore-json per veure una implementació pràctica. Contacti amb Q2BSTUDIO per rebre assessorament personalitzat en aplicacions a mida, programari a mida, intel·ligència artificial, ciberseguretat, serveis cloud aws i azure, serveis d'intel·ligència de negoci, agents IA i power bi.
Esperem que aquesta guia l'ajudi a comprendre com mapejar i consultar dades JSON a PostgreSQL utilitzant EF Core i com el seu projecte pot beneficiar-se de solucions a mida integrades amb IA i serveis cloud professionals.





