2009-12-16 44 views
0

我們希望在我們的WCF服務後面使用NHibernate,但是我們在將子記錄刪除保存到數據庫時遇到問題。堅持孩子通過NHibernate和WCF刪除

我們在IList <>作爲子集合類型的服務和客戶端之間使用DTO。當我們使用NHibernate填充DTO時,它將子集合設置爲一種Bag。但是,當通過線路發送時,WCF會將此集合類型更改爲Array。

如果我們從數組中刪除記錄並將其傳回服務,NHibernate將不會將刪除持久化到數據庫。

是否有某種方式可以告訴NHibernate(在映射中?)刪除Array中不存在的任何子記錄?

回答

5

會話對象上有一個名爲SaveOrUpdateCopy的函數,在此場景中該函數特別有用。

SaveOrUpdateCopy(或合併,它會做同樣的事情)將從數據庫中加載當前實體,並嘗試檢測已做了哪些更改(即集合中的哪些子實體已被刪除等)。

下面是該進入更詳細的關於SaveOrUpdate副本博文鏈接: http://www.codinginstinct.com/2009/11/nhibernate-feature-saveorupdatecopy.html

+0

是的,這完美地完成了這項工作 - 謝謝! – Matt 2009-12-16 14:06:44

0

你看着的關係(即表)設置cascade?有關各種選項的更多詳細信息,請查看post