0

オブジェクトごとに重複オプションのある画面を作成しました。例:詳細とともに新しい顧客を作成するときに、ユーザーは既存の顧客を選択して、既存のユーザーから新しいユーザーに関連付けられたグループをコピーできます。そこで、1:nとm:nのシナリオで新規顧客のプロパティを割り当てる方法を知りたいと思います。

  1. 「Customer」および「CustomerGroups」の場合。以下のアプローチはうまくいきますか?

    Customer existing = repo<Customer>(id);
    
    Customer newCust = new Customer();
    for(var group in existing.Groups)
    newCust.CustomerGroups.Add(new CustomerGroup(){ **AllpropertiesexceptID**, **Customer=newCust** } );
    
  2. OrderとOrderItemsの場合、m:nの関係なので、既存のアイテムを新しい注文に添付するだけです。

    既存の注文=repo(id); Order newOrder = new Order();
    for(var item in previous.Items)newOrder.Items.Add(item);

これらの操作を実行するには、既存の注文または顧客に対してSession.Evictを実行する必要がありますか。

4

1 に答える 1

0

考えすぎかもしれません。:) 先に進んで、別のそっくりなオブジェクトを作成し、NHibernate が存在しないふりをします。新しいインスタンスが異なる (設定されていない) ID プロパティを持っている限り、NHibernate はそれらが「コピー」であることさえ認識しません。

于 2012-09-10T21:45:12.787 に答える