Не обрабатывается 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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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