2016-07-15 34 views
0

Ich arbeite mit RavenDB in C# und habe ein neues Feld zu einem bestehenden Modell hinzugefügt. Ich bin mit diesem command`RavenDB patchen, wenn das Feld bereits existiert

PatchCommandType.Set

`das neue Feld zu bestehenden Dokumenten hinzuzufügen.

Wenn dieser Patch-Befehl auf Dokumenten ausgeführt wird, die bereits über dieses spezifische Feld verfügen, überschreibt der Befehl patch das vorhandene Feld/den vorhandenen Wert oder erstellt er ein doppeltes Feld mit demselben Namen?

Ich möchte diesen Patch-Befehlscode im Verlauf der Entwicklung beibehalten und sicherstellen, dass die Datenbank nicht beschädigt wird.

store.DatabaseCommands.UpdateByIndex("Index", 
     new IndexQuery{ 
      Query = "Model:" 
     }, 
     new []{ 
      new PatchRequest{ 
       Type = PatchCommandType.Set, 
       Name = "IsArchived", 
       Value = true 
      }, 
     } 
); 

Antwort

1

Set erstellt das Feld, wenn es nicht dort ist, oder ändern Sie es, wenn es existiert, ja.

+0

Okay, also habe ich eine Dokumentation nachgeschaut und gesehen, dass es eine add-Methode gibt und ich frage mich, ob das nur das Feld hinzufügen würde, wenn es nicht existierte. Das ganze Dokumentationsbeispiel sagt "add new property". –

+0

Hinzufügen ist dort, um ein Element zu einem Array hinzuzufügen. Siehe die XML-Kommentare hier: https://github.com/ayendegraveb/blob/v3.5/Raven.Abstractions/Data/PatchCommandType.cs –

Verwandte Themen