2016-06-22 3 views
0

Wie wird in nhibernate festgelegt, damit beim Aufrufen von session.Save() Änderungen an seinen Sammlungen erkannt werden.Nhibernate Keine Änderungen an übergeordnetem Element bei Aktualisierungen der untergeordneten Sammlung

Wollte den übergeordneten Datensatz aktualisieren, wenn sich eine untergeordnete Auflistung ändert (entweder einfügen, aktualisieren oder löschen).

Dank

+0

Warum müssen Sie die Eltern aktualisieren? Geht es um optimistisches Sperren? Sie müssen das Update nicht aufrufen, wenn die Entitäten angehängt sind. Hast du getrennte Einheiten? –

+0

Das Elternteil ist der wichtigste Datensatz. z.B. Wenn Sie die Note eines Themas aktualisieren, sollte auch das aktualisierte Datum der gesamten Schülerakte aktualisiert werden. Mein Problem ist, dass es einen automatischen Weg gibt, den nhibernate nur speichert, wenn es Änderungen an seinen Eigenschaften gibt, aber ich möchte auch überprüfen, ob seine Sammlungen Aktualisierungen haben. –

Antwort

0

Sie können Nhibernate gesetzt Kind Sammlung Änderungen zu speichern, wenn Sie die Eltern sparen durch Kaskaden Attribut auf der Sammel Definition Einstellung so Ihre Sammlung Mapping etwas wie folgt aussehen:

<bag name="Children" table="tblChildren" inverse ="true" cascade="all-delete orphan" lazy="true"> 
    <key column="ChildId"/> 
    <one-to-many class="XXXX.Child, XXX"/> 
</bag> 
0

Die Mutter Änderungsdatum ist etwas, das von Ihrer Geschäftslogik behandelt werden muss. Wenn Sie es explizit festlegen, speichert NH es. Wenn das Änderungsdatum in einem NHibernate-Ereignis oder Interceptor festgelegt wird, sind Sie verloren, da NH keinen Grund hat, das übergeordnete Element zu aktualisieren.

Sie sollten eigentlich eine Art von Dienst haben, der Änderungen an den Eltern übernimmt. Kinder werden nicht direkt gewechselt, ohne dass der Dienst darüber informiert wird. Dieser Service legt das Änderungsdatum des Elternteils explizit fest. Es ist Teil der Geschäftslogik.

+0

Ja, ich habe gerade erwartet, dass der Layer erkennt, ob eine Entität Änderungen hat. könnte auch erkennen, ob die Entitäten untergeordnete Sammlung Änderungen hat. Das Hinzufügen zusätzlicher Logik zu diesem Layer sollte ausreichen, aber ich bin mir nicht sicher, ob das irgendwo in NH verfügbar ist –

Verwandte Themen