Mam niestandardową strukturę obiektu formularza używam z powodzeniem z mongodb.Czy mogę użyć polimorfizmu/dziedziczenia w sterowniku C# DocumentDb
Badałem możliwość zastąpienia Mongo dokumentemDb.
Struktura mojej klasy składa się z kontrolki podstawowej, z której dziedziczą różne rodzaje kontroli. na przykład Sterowanie polem tekstowym, rozwijana kontrola
W mongo Używam pola dyskryminatora do zapisania aktualnego typu, w C# DocumentDb nie mogę znaleźć tej samej funkcji.
poniżej to przykład tego, jak mongo przechowuje strukturę mojej klasy.
{
"_t" : "TextboxControl",
"LabelText" : "Location of incident",
"IsRequired" : true,
"_id" : "cbe059d9-b6a9-4de2-b63b-14d44b022e37"
}
W documentdb struktury wygląda
{
"LabelText": "Location of incident",
"IsRequired": true,
"id": "cbe059d9-b6a9-4de2-b63b-14d44b022e37"
}
Jak widać wersja Mongo ma „'t” własność stwierdzający rzeczywisty typ ten jest następnie wykorzystywany, kiedy odczyt danych, aby stworzyć prawidłowy typ. W wersji documentdb jest to po prostu typ pola:
Prawidłowa obsługa JsonSerializerSettings wreszcie opracowywane przez MS: https://github.com/Azure/azure-documentdb-dotnet/issues/229 – AndyJ