変更を取り消して以前のバージョンにロールバックできるように、「以前のバージョン」を作成します。オブジェクトグラフが重複し、nhibernateで新しいものとして維持されます
私はさまざまなプロパティと管理スタッフのコレクションを持つマネージャオブジェクトを持っています。これは、データベース内の2つのテーブルに関連し、スタッフは外部キーによってマネージャにリンクされています。
私がしたいのは、マネージャーとそのスタッフ全員を複製して、マネージャーテーブルの新しいエントリーとして、そしてスタッフテーブルの新しいエントリーとしてデータベースに保存することですマネージャー。
私は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'クラス名は本当に小文字ではないことを願っています! – kroimon