Ich möchte "frühere Versionen" erstellen, damit ein Benutzer die vorgenommenen Änderungen rückgängig machen und zu einer früheren Version zurückkehren kann.
Ich habe ein Manager-Objekt mit verschiedenen Eigenschaften und eine Sammlung von verwalteten Mitarbeitern. Dies bezieht sich auf zwei Tabellen in der Datenbank mit Mitarbeitern, die mit dem Manager durch einen Fremdschlüssel verbunden sind.
Was ich tun möchte, ist der Manager und alle seine Mitarbeiter zu duplizieren und speichern Sie es zurück in die Datenbank als einen neuen Eintrag in der Manager-Tabelle und eine Reihe von neuen Einträgen in der Mitarbeiter-Tabelle, die unsere im Zusammenhang mit dem neuen Manager.
Ich verwende nhibernate und habe mich gefragt, ob es einen cleveren Weg gibt, dies mit diesem Programm zu tun.
Die einzige Möglichkeit, die mir dazu einfällt, ist die manuelle Eingabe:
manager old = getManager(); // get the original for copying
manager newManager = new manager(); // create a blank object
newManager .name = old.name //give the new manager the old one's props;
//cycle through the staff duplicate and add to new managers staff collection
foreach(staff s in old.staffCollection)
{
staff newStaff = new staff();
newstaff.name = s.name;
newManager.staffCollection.Add(newstaff);
}
das obige Beispiel ist nicht genau so, wie ich es machen würde, aber ich hoffe, Sie verstehen die Idee.
Ich habe darüber nachgedacht, Reflexion zu verwenden, um die Requisiten zu erhalten, anstatt sie manuell zu setzen, aber das ist ungefähr so clever, wie ich es habe.
Gibt es in nhibernate eine Möglichkeit, den Objektgraphen zu kopieren und ihn als neue Einträge wiederherzustellen?
oder hat jemand eine gute Idee?