Сценарии - Взаимодействие с Json 

Page / - Изменено Alexandr Fokin в 2024/12/07 13:55 

Взаимодействие с 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	NpgsqlConnection.GlobalTypeMapper.Mappings
https://github.com/npgsql/efcore.pg/issues/1107#issuecomment-552182608
6.0.0
https://github.com/npgsql/efcore.pg/issues/1107#issuecomment-945126627