2011-10-31 45 views
1

我想在NHibernate中支持級聯更新「截斷圖」。 假設我有一個Student實體和一個擁有Students集合的Class實體。學生館藏被映射爲「級聯全部」。現在,假設客戶端中只有一個類實體發生了變化,所以我希望客戶端只能發送沒有包含學生的類實體。我的方法是讓客戶發送學生屬性無效的班級實體,並讓DAL明白學生館藏應該被忽略。 不幸的是,當NHibernate獲得null屬性class.Student給session.Merge時,它通過設置它們的FK爲null和/或刪除它們(取決於具體的級聯選項)而將子學生與父類斷開連接。 我希望NHibernate的行爲就像只有當獲得一個空的集合,而不是當集合被取消時。 有沒有辦法解決這個問題?例如。通過告訴NHibernate以某種方式在合併期間跳過無效的屬性?在NHibernate中調用session.Merge時跳過屬性

+0

可能初始化與原始值無效的屬性var class = Session.Get (class.Id); Session.Evict(類); classFromClient.Students = class.Students; Session.Merge(classFromClient);' – Firo

回答

0

您可以在Class實體中爲Student集合設置inverse = "true",以便它不會清除FK。

+1

但是我必須在Student實體中管理後面的引用,這不是我想要的 – Elad