2012-09-06 48 views
0

我們爲每個對象創建了具有重複選項的屏幕。例如:在創建新客戶和詳細信息的同時,用戶可以選擇現有客戶將從現有客戶關聯的組複製到新用戶。所以我想知道如何爲1:n和m:n場景分配新客戶的屬性。通過在Nhibernate中附加現有實體屬性來插入新對象

  1. 對於「客戶」和「顧客組」。下面的方法可以正常工作嗎?

    Customer existing = repo<Customer>(id); 
    
    Customer newCust = new Customer(); 
    for(var group in existing.Groups) 
    newCust.CustomerGroups.Add(new CustomerGroup(){ **AllpropertiesexceptID**, **Customer=newCust** }); 
    
  2. 秩序和的OrderItems,因爲它的M:N的關係,只是附加了新秩序現有的項目。

    Orders existing = repo(id); Order newOrder = new Order();
    for(var item in existing.Items) newOrder.Items.Add(item);

是否需要爲現有訂單或客戶執行Session.Evict來執行這些操作。

+1

兩者都應該正常工作,你不需要驅逐任何東西 –

回答

0

你可能想得太多了。 :)繼續前進,創建單獨的類似對象,假裝NHibernate甚至不在那裏。只要新實例具有不同(未設置)的身份屬性,NHibernate甚至不會意識到它們是「副本」。

相關問題