2016-05-23 3 views
0

Ich beginne gerade mit RavenDB und habe die Dokumentation über verwandte Dokumente studiert. Das System, an dem ich arbeite, hat zwei Klassen: Familie und Mitglied.Ausdrücken verwandter Dokumente als ein Objekt in RavenDB

Eine Familie kann viele Mitglieder haben und ein Mitglied kann zu vielen Familien gehören. Mitglieder können auch einzeln abgerufen und aktualisiert werden. Nach dem, was ich lese, ist der richtige Weg, dies zu modellieren, ein Dokument für die Familie und ein anderes Dokument für das Mitglied zu haben. Und damit Family eine Liste von MemberIds enthält.

Großartig!

Der obige Ansatz ist auf der Website RavenDB beschrieben bei https://ravendb.net/docs/article-page/3.0/csharp/indexes/querying/handling-document-relationships

Aber bedeutet dies, dass Sie separat jede des Objekts zu behandeln. Sie müssen jedes Memberobjekt einzeln abrufen, indem Sie einen separaten Ladebefehl verwenden. Selbst wenn Sie ein Include verwenden, um alle verwandten Objekte in die Sitzung "vorzufäh- len", müssen Sie für jeden einen separaten Befehl Load eingeben.

Das bedeutet, dass das Family-Objekt keine Liste von Member-Objekten enthält, sondern nur eine Liste von MemberIds enthält.

Hier ist meine Frage: Gibt es eine Möglichkeit, RavenDB ein komplexes Objekt aus verwandten Dokumenten zurückgeben, so dass wenn Sie ein Familienobjekt zurück erhalten, wird es eine Liste der Mitglieder Objekte enthalten, die verwandt sind? Ich weiß, dass wenn Sie die Mitgliedsobjekte direkt in das Familienobjekt einfügen, dies möglich ist, aber das ein Mitgliedsobjekt nicht an anderer Stelle (anderen Familien) verwendet werden kann.

Gibt es außerdem eine Möglichkeit, RavenDB zu erklären, bestimmte eingebettete Listen in verwandte Dokumente zu "dekonstruieren" anstatt sie im selben Dokument zu speichern?

Es scheint, als wäre dies eine sehr hilfreiche Sache zu haben.

Antwort

0

Sie können einen Transformator dafür verwenden, ja.

+0

Danke! Ich sehe, wie ein Transformator verwendet werden könnte, um die Daten in ein gewünschtes Format zu bringen, aber was ist mit dem Speichern von Daten? Mit anderen Worten, kann das Umgekehrte getan werden, wenn Sie ein komplexes Modell übergeben und bestimmte Elemente als verwandte Dokumente speichern? –

+0

Nein, das ist nicht möglich. Und wahrscheinlich ein Problem mit Ihrem Modell. –