Je veux créer des "versions précédentes" afin qu'un utilisateur puisse annuler les modifications apportées et revenir à une version précédente.Reproduire un graphique d'objet et le conserver comme nouveau dans nhibernate
J'ai un objet manager avec diverses propriétés et une collection de personnel géré. ceci concerne deux tables dans la base de données avec du personnel lié au gestionnaire par une clé étrangère. Ce que je voudrais faire est de dupliquer le gestionnaire et tout son personnel et de le sauvegarder dans la base de données en tant que nouvelle entrée dans la table du gestionnaire et une série de nouvelles entrées dans la table de personnel que nous avons liée au nouveau directeur. J'utilise nhibernate et je me demandais s'il y avait une façon intelligente de le faire avec ça.
La seule façon que je peux penser à le faire manuellement:
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);
}
l'exemple ci-dessus est pas exactement comment je le ferais, mais vous obtenez l'idée que je l'espère.
J'ai pensé à utiliser la réflexion pour obtenir les accessoires au lieu de les régler manuellement, mais c'est à peu près aussi intelligent que j'ai.
Y a-t-il un moyen dans nhibernate de copier le graphe d'objet et de le conserver comme de nouvelles entrées?
ou est-ce que quelqu'un a des idées brillantes?
Je sais que c'est juste un exemple de code, mais j'espère vraiment que vos noms de classe 'manager' et' staff' ne sont pas vraiment minuscules! – kroimon