Ich verwende Entity Framework Core 9.0.2 und NPGSQL 9.0.3 Hier ist ein Beispiel für die Entität: < /p>
Code: Select all
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>
In EF I hat ich die Entität hinzugefügt, indem sie es so definiert: < /p>
modelBuilder.Entity().ToTable("DatabaseEntity")
.OwnsOne(b => b.Properties, onb => onb.ToJson());
< /code>
Die Migrationen (wir verwenden zuerst Code) wurden generiert. Die Datenbanktabelle ist genau das, was ich erwarte. Wenn ich jedoch versuche, die Entität mit z. Klasse "a" in der abgeleiteten ClassProperty bestehen nur die Eigenschaften der Basisklasse und nicht die der abgeleiteten Klasse. POCOS für JSONB -Tabellen in der neuesten Version von NPSQL und EF Core 9 (NPSQL -Dokumentation). Aber das hat auch nicht funktioniert.>
Mobile version