Entity Framework Core jsonb column type
Based on H. Herzl comment:
My final solution was something like this:
public class MyTableClass{ public int Id { get; set; } [Column(TypeName = "jsonb")] public string Data { get; set; }}
Migrations generated this:
Data = table.Column<string>(type: "jsonb", nullable: true),
When updated the database with migrations, the Data column was created correctly with jsonb type.
Thank you H. Herzl!
using string
as was suggested by @bruno.almeida is a nice solution but couldn't be queried.
additional approaches are to use:
- As System.Text.Json DOM types (
JsonDocument
or JsonElement) - As strongly-typed user-defined types (POCOs)
JsonDocument
being my favorite since it could be queried, is flexible and fast to setup, e.g.:
public JsonDocument Customer { get; set; }
more details at: https://www.npgsql.org/efcore/mapping/json.html