2010-01-03 10 views
21

Was bedeutet Cascade in Nhibernate bedeuten?Nhibernate Cascade

Ich sehe eine Menge von Optionen in Kaskadierung:

  • löschen
  • Alle
  • AllDeleteOrphan
  • DeleteOrphan
  • SaveUpdate

Können Sie diese mit mit Beispielen erläutern und ihre Unterscheidungen?

Antwort

25

Dies bedeutet, dass die Aktion auf verwandte Elemente eines Elements angewendet wird.

Bitte sehen: NHibernate Cascades: the different between all, all-delete-orphans and save-update:

  • keine - machen keine Kaskaden, lassen Benutzer mit ihnen umgehen sich.

  • save-Update - wenn das Objekt gespeichert/aktualisiert, überprüfen Sie die Verbände und speichern/aktualisieren jedes Objekt, das es erfordert (einschließlich Speichern/Aktualisieren der Verbände in many-to-many Szenario).

  • löschen - wenn das Objekt gelöscht wird, löschen Sie alle Objekte in die Zuordnung.

  • delete-orphan - Wenn das Objekt gelöscht wird, löschen Sie alle Objekte in der Assoziation. In zusätzlich, wenn ein Objekt aus der Assoziation entfernt und nicht mit einem anderen Objekt (verwaist) verbunden ist, löschen Sie es auch.

  • alle - wenn ein Objekt speichern/aktualisieren/löschen, überprüfen Sie die Verknüpfungen und speichern/aktualisieren/löschen Sie alle gefundenen Objekte.

  • all-delete-orphan - Wenn ein Objekt speichern/aktualisieren/löschen, überprüfen Sie die Verknüpfungen und speichern/aktualisieren/löschen Sie alle gefundenen Objekte. In zusätzlich, wenn ein Objekt aus der Assoziation entfernt und nicht mit ein anderes Objekt (verwaist) verbunden ist, löschen Sie es auch.

+1

Ich verstehe nicht den Unterschied zwischen A und O-löschen-Waise könnten Sie bitte erklären? – joncodo

+1

@ JonathanO Wenn Sie alle auswählen und dann eine Verknüpfung entfernen, wird nur die Verknüpfung und nicht das zugehörige Objekt entfernt. Wenn Sie all-delete-orphan wählen, wird auch das zugehörige Objekt entfernt. – iboware