简介
JSON(JavaScript Object Notation)在web开发和跨应用领域有着绝对的优势,甚至Monodb、Redis数据库完全采用json存储。PostgreSQL很早就已经全支持JSON类型的存储和查询,为了更大的提高JSON查询效率PostgreSQL提供了jsonb类型用来存储JSON,目前jsonb的结构化sql查询已经十分强大,但是对于许多web开发者来说写sql已经成为过去式,我们更多的会使用linq或lambda来实现OOP中的对象查询。本篇就给大家介绍在EF Core中查询jsonb。
引用和依赖
在项目中引用Npgsql.EntityFrameworkCore.PostgreSql最新包 --- Npgsql在查询时会生成postgreSQL语法。
实体和数据
创建JsonbEntity实体如下:
public class JsonbEntity
{
public Int Id { get; set; }
public JsonElement Customer { get; set; }
}
EF Core Mapping映射配置如下:
builder.Entity(b =>
{
b.ToTable("jsonb");
b.Property(x => x.Customer).HasColumnType("jsonb");
});
Code First迁移到数据库
PM> Add-Migration
PM> Update-Database
手动添加一条json到Customer:
<