Polymorphismus in Entity Framework Core 9 mit PostgreSQL und JSONB -SäuleC#

Ein Treffpunkt für C#-Programmierer
Anonymous
 Polymorphismus in Entity Framework Core 9 mit PostgreSQL und JSONB -Säule

Post by Anonymous »

Ich arbeite derzeit an einer Datenbanktabelle, die einige Grundeigenschaften der Daten und eine Eigenschaft enthalten, die in der Datenbank eine jsonB ist, die verschiedene Objekte enthalten kann, die von einer Basis abgeleitet sind Klasse.
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; }
}
Und dies ist ein Beispiel für die Klassenhierarchie, die in der Spalte JSONB der Entität gespeichert werden soll:
[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.>

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post