#npgsql
#npgsql
Вопрос:
Я использую npgql v3.1.8 и EntityFramework6.Npgsql v3.1.1, используя код первого создания базы данных.
Я хотел бы сохранить определенные пользовательские настройки в столбце, используя поле postgres json. Итак, первым шагом является создание простой модели с типом столбца в виде текста для начала.
[StringLength(1000)]
public string Settings { get; set; }
Это работает и позволяет сохранять json в столбце — отлично, но не использует тип столбца json postgres. Теперь я удаляю базу данных, чтобы ее можно было воссоздать заново, и меняю модель на:
[Column(TypeName = "json")]
public string Settings { get; set; }
Поскольку это единственное изменение, в мире все должно быть хорошо. Но, увы, во время создания модели возникает ошибка (и, следовательно, база данных никогда не создается). Ошибка заключается в:
System.InvalidOperatiopnException: Sequence contains no matching elements
Хм, хорошо, давайте попробуем другой метод. Удалите атрибут и добавьте приведенный ниже в DbContext переопределение OnModelCreating:
modelBuilder.Entity<Equipment>().Property(p => p.Settings).HasColumnType("json");
И.. Та же ошибка. Кто-нибудь сталкивался с этим раньше? Сейчас я возвращаюсь к своему столбцу строк произвольной длины — по крайней мере, это работает!