RavenDB wie spülen?

7

Ich verwende RavenDb eingebettet. Als Teil meiner Integrationstests möchte ich überprüfen, ob Objekte dauerhaft sind. Wenn ich Änderungen an einem Objekt speichere und es dann abrufe, kann es nicht gefunden werden, es sei denn, ich entsorge meine Verbindung.

Dies funktioniert nicht für mich, da keine Dateien zurückgegeben werden

%Vor%

....

%Vor%

Ich habe eine Flush-Methode erstellt, die einen EmbeddableDocumentStore bereitstellt und neu erstellt, der funktioniert, aber da dies etwas ist, das sich grundlegend anfühlt, gehe ich vielleicht falsch vor:

%Vor%

Wie beharrst du in RavenDB und checkst dann, dass es beibehalten wurde? Irgendein Rat zu diesem würde groß sein

    
Dan Black 07.02.2012, 17:51
quelle

2 Antworten

15

Grundsätzlich dauert% EmbeddableDocumentStore länger zum Speichern und Index als das Speichern und Abfragen von neuen Daten.

Also wenn deine Tests sagen: -

  1. Store und SaveChanges.
  2. Laden.
  3. Hat das geladen?

Der Ladevorgang wird schneller beendet, als die Indizierung zu Ende war.

Also, wie Daniel Lang sagte, müssen Sie auf veraltete Ergebnisse warten.

ABER .. Sie müssen das für jede Abfrage tun, die Sie überprüfen möchten, in Ihrem Code. Also .. lass uns (legal) betrügen:)

Sagen Sie Ihrem Dokumentspeicher, IMMER auf veraltete Ergebnisse zu warten, wenn der Store abgefragt wird.

Wie?

%Vor%

Um dies in Aktion zu sehen, schaut euch RavenOverflow @ github an. Und das Test-Projekt in dieser Lösung hat all die Liebe, die Sie sich wünschen:)

    
Pure.Krome 08.02.2012, 05:34
quelle
12

Der Grund ist, dass der Rabenindex zu alt ist, um hier etwas zurückzugeben. Sie müssen dies tun:

%Vor%

Weitere Informationen finden Sie hier: Ссылка

    
Daniel Lang 07.02.2012 19:50
quelle

Tags und Links