Взаимодействие с Json

Редактировал(а) Alexandr Fokin 2024/12/07 13:55

 JSONТип данных Json
Индексация
 Can JSONB GIN indexes be specified in CodeFirst EntityFramework with NPGSQL?
https://stackoverflow.com/questions/54618858/can-jsonb-gin-indexes-be-specified-in-codefirst-entityframework-with-npgsql
  
  
Маппинг типов
Тип столбца и свойства

JSON Mapping
https://www.npgsql.org/efcore/mapping/json.html?tabs=data-annotations%2Cpoco

System. Text. Json
Позволяет использовать JsonDocument и JsonElement.

JsonDocument dispose

JsonDocument является IDisposable.

1) Вызываем Dispose в setter для предыдущего значения.
2) Делаем сущность Disposable и строим отчистку через жизненный цикл DbContext и его dispose.

Использовать JsonElement.

Форматирование при записи в БД.
 

Проблема указания параметров форматирования, с которыми будет выполняться чтение и запись json столбца.

Serialization options for System.Text.Json support
https://github.com/npgsql/efcore.pg/issues/1107

 XO.EntityFrameworkCore.NpgsqlJsonSerializerOptions
https://www.nuget.org/packages/XO.EntityFrameworkCore.NpgsqlJsonSerializerOptions/
Простое решениеРеализовать кастомный ValueConverter<JsonElement, string>ValueConverter<JsonElement, string>string>, определив в нем JsonSerializerOptionsJsonSerializerOptions
Решение через маппинг ADO
  
  
Теги:
Создал(а) Alexandr Fokin 2024/12/07 13:46