Inclui suporte para armazenar dados JSON na tabela ProcessedInvoices usando o tipo jsonb do PostgreSQL. Implementa conversão entre JsonDocument e string JSON no modelo. Cria migração para adicionar/remover a coluna. Atualiza versão do EF Core para 9.0.0. Ajusta gravação de faturas para salvar o corpo JSON recebido.
25 lines
836 B
C#
25 lines
836 B
C#
using Microsoft.EntityFrameworkCore;
|
|
using System.Text.Json;
|
|
|
|
namespace Webhook_4docs
|
|
{
|
|
public class WebhookDbContext(DbContextOptions<WebhookDbContext> options) : DbContext(options)
|
|
{
|
|
public DbSet<ProcessedInvoices> ProcessedInvoices { get; set; }
|
|
|
|
protected override void OnModelCreating(ModelBuilder modelBuilder)
|
|
{
|
|
base.OnModelCreating(modelBuilder);
|
|
|
|
modelBuilder.Entity<ProcessedInvoices>()
|
|
.Property(p => p.JsonBody)
|
|
.HasColumnType("jsonb")
|
|
.HasConversion(
|
|
v => v == null ? null : v.RootElement.GetRawText(),
|
|
v => v == null ? null : ParseJsonDocument(v));
|
|
}
|
|
|
|
private static JsonDocument ParseJsonDocument(string json)
|
|
=> JsonDocument.Parse(json);
|
|
}
|
|
} |