Не обрабатывается JSON-преобразование IList в базу данных.C#

Место общения программистов C#
Anonymous
Не обрабатывается JSON-преобразование IList в базу данных.

Сообщение Anonymous »

Я новичок в Linq2DB и плагине EFCore для него. Однако при попытке реализовать массовую вставку я заметил, что некоторые столбцы, которые в противном случае работают в EFCore, терпят неудачу со следующим исключением:

Заданное значение 'System.Collections .Generic.List

Код: Выделить всё

1[System.String]' of type List
1 из источника данных невозможно преобразовать в тип nvarchar для столбца 14 [OrderNumbers].

Класс, который содержит рассматриваемое свойство: настройте следующим образом:

Код: Выделить всё

public IList OrderNumbers { get; set; } = new List();
Хотя поле в базе данных (SQL Server) является nvarchar(max).
Класс, который настраивает таблицу для этот класс настроен следующим образом:

Код: Выделить всё

builder.Property(x => x.OrderNumbers)
.HasColumnOrder(15);
При этом используется сравнительно недавняя функция, реализованная в EF Core 7 или 8, которая позволяет автоматически преобразовывать список примитивов в столбец JSON в базе данных.
Я пробовал вызвать это в своем модульном тесте, который тестирует функциональность массовой вставки, но пока безуспешно:

Код: Выделить всё

MappingSchema.Default.SetConverter(list => JsonSerializer.Serialize(list));
MappingSchema.Default.SetConverter(list => JsonSerializer.Serialize(list));
MappingSchema.Default.SetConverter(list => JsonSerializer.Serialize(list));
MappingSchema.Default.SetConverter(list => JsonSerializer.Serialize(list));
MappingSchema.Default.SetConverter(list => JsonSerializer.Serialize(list));
MappingSchema.Default.SetConverter(list => JsonSerializer.Serialize(list));
Является ли MappingSchema.Default.SetConverter подходящим методом для преобразования списков строк в nvarchar? Кто-нибудь делал что-то подобное?


Подробнее здесь: https://stackoverflow.com/questions/782 ... o-database

Вернуться в «C#»