2017-12-07 3 views
1

Ich möchte Objekttyp als Teil von JSON Objekt speichern, wenn mein Objekt in Cosmos db hochgeladen. Ich habe versucht, einen JSON-Serializer zu übergeben, wenn Instanz von Cosmos Client instanziiert wird, aber es funktioniert nicht. Ich sehe immer noch keinen Objekttyp im Dokument. Was ich versuche zu tun:Cosmos DB: Speichern Objekttyp als eine Eigenschaft in Dokument

public static readonly JsonSerializerSettings DefaultJsonSerializerSettings = 
     new JsonSerializerSettings 
     { 
      TypeNameHandling = TypeNameHandling.All, 
      DateFormatString = "o", 
      DateFormatHandling = DateFormatHandling.IsoDateFormat, 
     }; 

    var CosmosClient = 
      new DocumentClient(
       new Uri(CosmosConfig.ServiceEndpoint), 
       CosmosConfig.AuthNKey, 
       DefaultJsonSerializerSettings, 
       connectionPolicySettings); 

Jede andere Art und Weise, ohne ein solches Verhalten zu haben Vorverarbeitung (Objekt jObject Umwandlung) zuerst? Dank

Upd: smth wie nächste Struktur in meinem Dokument (automaticaly serialisierte Typ)

Was ich versuche zu achive:

{ 
     "$type" : "MyNamespace.Foo", 
     "Id": "1560e1be-bf87-4720-a22e-b7e2c4c37f2e", 
     "Name" : "Vasia" 
    } 

statt aktuellen wie folgt aus (ohne Typ):

{ 
     "Id": "1560e1be-bf87-4720-a22e-b7e2c4c37f2e", 
     "Name" : "Vasia" 
    } 

Antwort

1

Laut meiner un Englisch: www.mjfriendship.de/en/index.php?op...27&Itemid=47 Ich meine, dass Sie die Art von Unternehmen wie Kunde, Verkäufer usw.

Wenn das so ist, möchte ich Sie informieren, dass Cosmos DB schemelose Datenbank ist und daher nicht im Format wie Kunde, etc. Wenn Sie wirklich den Objekttyp in Cosmos DB erkennen müssen, müssen Sie eine Eigenschaft wie Type = "Customer" oder Type = "Employee" in Ihrem Objekt oder Ihrer Entität hinzufügen, die Sie speichern möchten, da alle Objekte in DocumentDB gespeichert sind ähnliche Form und das ist JSON gibt es kein Konzept wie Tabelle von Kunde/Mitarbeiter wie in SQL.

Vergessen Sie nicht, meine Antwort zu markieren, wenn es Ihnen hilft ..

+0

kann ich es haben automatisch generiert und mit auf Deserialisieren? Danke –

+0

Nein in Kosmos db kann nicht automatisch generiert werden, wie ich sagte, Sie müssen eine weitere Eigenschaft in Ihrer Entität wie Typ hinzufügen, um den Typ der Entität darzustellen. Nur id und einige andere Felder wie "SecurityStamp", "TwoFactorEnabled", "_rid", "_self", etc. werden automatisch von Cosmos db nicht ein Entitätstyp generiert. –

Verwandte Themen