Ich habe eine benutzerdefinierte Formularobjektstruktur, die ich erfolgreich mit mongodb verwende.Kann ich Polymorphismus/Vererbung im C# -DocumentDb-Treiber verwenden
Ich habe die Möglichkeit untersucht, Mongo mit DocumentDb zu ersetzen.
Meine Klassenstruktur besteht aus einem Basissteuerelement, von dem verschiedene Steuerelementtypen abgeleitet werden. z.B. Textfeldsteuerung, Dropdown-Steuerelement
In Mongo verwende ich das Diskriminatorfeld, um den tatsächlichen Typ zu speichern, in dem C# -DocumentDb-Treiber kann ich nicht finden, die gleiche Funktion zu finden.
unten ist ein Beispiel dafür, wie Mongo meine Klassenstruktur speichert.
{
"_t" : "TextboxControl",
"LabelText" : "Location of incident",
"IsRequired" : true,
"_id" : "cbe059d9-b6a9-4de2-b63b-14d44b022e37"
}
In documentdb die Struktur sieht wie
{
"LabelText": "Location of incident",
"IsRequired": true,
"id": "cbe059d9-b6a9-4de2-b63b-14d44b022e37"
}
Wie Sie die Mongo Version eine „_t“ Eigenschaft hat sehen können, die tatsächliche Art und erklärt diese dann verwendet wird, wenn ich die Daten lesen die erstellen richtiger Typ. In der Documentdb-Version ist es einfach ein Feldtyp
Die richtige Unterstützung für JsonSerializerSettings schließlich gearbeitet wird von MS auf: https://github.com/Azure/azure-documentdb-dotnet/issues/229 – AndyJ