У меня есть столбец строкового массива в базе данных
ALTER TABLE sample ADD languages VARCHAR[] NULL;
который сопоставлен с моделью:
public string[] languages { get; set; }
Использование EF Core с PostgreSQL (Npgsql.EntityFrameworkCore.PostgreSQL 2.2.0) работает "из коробки".
Однако, когда я хочу проверить DbContext с помощью In-Memmory (Microsoft.EntityFrameworkCore.InMemory 2.2.4), я получил эту ошибку:
System.InvalidOperationException: не удалось отобразить свойство 'sample.languages', поскольку оно имеет тип 'string []', который не является поддерживаемым типом примитива или допустимым типом объекта. Либо явным образом сопоставьте это свойство, либо игнорируйте его, используя атрибут «[NotMapped]» или «EntityTypeBuilder.Ignore» в «OnModelCreating».
Итак, добавление этого в конфигурацию компоновщика модели решает ошибку In-Memmory:
builder.Property(p => p.languages)
.HasConversion(
v => string.Join("'", v),
v => v.Split(',', StringSplitOptions.RemoveEmptyEntries));
Но поднимает новый (Npgsql):
Невозможно привести символ типа базы данных, изменяющийся [] к строке
в Npgsql.NpgsqlDefaultDataReader.GetFieldValue [T] (столбец Int32)
У вас есть какие-нибудь подсказки, пожалуйста?