我有四個類。 Person,NaturalPerson(繼承自Person),GroupFamilyMember(繼承自NaturalPerson),QuotationHolder(繼承自GroupFamilyMember)。將基類對象設置爲派生類對象
它們都共享相同的ID。
我的問題是下列之一:
有,它返回一個現有NaturalPerson(存儲在DB)對象基於文檔數目的方法。然後,我必須創建一個QuotationHolder,並且我希望QuotationHolder對象包含檢索的NaturalPerson對象。
問題是,我不能投這樣的對象(我知道的原因):
QuotationHolder quotationHolder = (QuotationHolder) naturalPerson;
我試圖創建一個新的QuotationHolder對象,並與naturalPerson's設置它的值對象值使用反射。
但正如我失去了參考檢索的對象,當我想在級聯保存,NHibernate的讓我有以下異常:
用同樣的標識值不同的對象已經與會議有關的
我想它試圖將對象保存爲一個新對象。
只是考慮:
ID使用HILO算法設置。 映射不能改變,既不是類。
我想你應該嘗試的第一件事是你的NHSession.Evict(naturalPerson);在保存報價之前請保留 – jbl
有人告訴我我也可以使用合併命令。但我無法訪問會話。我已經提供了一個只允許Save()和Delete()的接口。我想要的是不要失去對naturalPerson對象的引用並將其分配給quotationHolder之一。但我想這根本不可能。 – Andres