Код: Выделить всё
public class DatabaseEntity
{
public int Id { get; set; }
// This is the jsonb column
public BaseClass DerivedClassProperty { get; set; }
}
[JsonPolymorphic]
[JsonDerivedType(typeof(A))]
[JsonDerivedType(typeof(B))]
public class BaseClass
{
public int BaseProperty { get; set; }
}
public class A : BaseClass
{
public int AdditionalProperty { get; set; }
}
public class B : BaseClass
{
public string AnotherProperty { get; set; }
}
< /code>
В EF я добавил объект, определив его таким образом: < /p>
modelBuilder.Entity().ToTable("DatabaseEntity")
.OwnsOne(b => b.Properties, onb => onb.ToJson());
< /code>
Миграции (мы сначала используем код), сгенерирована, таблица базы данных - именно то, что я ожидаю, однако, если я попытаюсь сохранить объект, например, Класс "a" в defivedclassproperty, он сохраняет только свойства базового класса, а не из полученного класса. Pocos для таблиц JSONB в последней версии NPSQL и EF Core 9 (документация NPSQL). < /P>
Я уже пытался использовать Legacy Way, который описан в ссылке на документацию NPGSQL выше , но это также не сработало.>
Подробнее здесь: https://stackoverflow.com/questions/794 ... onb-column