【发布时间】:2009-03-19 17:47:05
【问题描述】:
我想创建“以前的版本”,以便用户可以撤消所做的更改并回滚到以前的版本。
我有一个具有各种属性的经理对象和一组托管员工。这与数据库中的两个表有关,其中员工通过外键链接到经理。
我想要做的是复制经理和他的所有员工并将其保存回数据库作为经理表中的新条目和员工表中与新经理相关的一系列新条目.
我正在使用 nhibernate,想知道是否有一种聪明的方法可以做到这一点。
我能想到的唯一方法是手动:
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);
}
上面的例子并不完全是我的做法,但你明白了我希望的想法。
我考虑过使用反射来获取道具,而不是手动设置它们,但这和我一样聪明。
在 nhibernate 中有没有办法复制对象图并将其作为新条目保留回来?
或者有人有什么好主意吗??
【问题讨论】:
-
我知道这只是示例代码,但我真的希望你的
manager和staff类名不是真的小写!
标签: nhibernate