2010-11-18 19 views
2

我想知道是否有更好的方法來管理Nhibernate中的關係表。目前當用戶第一次創建A時,我可以調用.Save,一切都很好。但是,當它們加載並進行更改時,我不只是想要刪除所有相應的記錄並重新創建它們。我希望它刪除不再有效的記錄,並創建新的記錄,並將仍然有效的記錄保留在數據庫中。更好的方式來管理Nhibernate關係表

目前我查看列表並刪除未選中的列表,然後將列表添加到新列表中。雖然看起來並不是最好的方式,但我已經兩次遍歷列表。那裏有LINQ單線解決方案嗎?

基本上目前我在做什麼:

遍歷A和到B刪除什麼不 乙
循環,並添加什麼不 在一個

在此先感謝。

回答

3

不知道你的A和B的實際是什麼。

如果它們是某個根實體的子項,則可以使用cascade =「all-delete-orphan」。 NH將刪除所有不在列表中的兒童。

如果您管理一個根實體列表,您需要通過這個「查找添加項目/查找刪除項目」業務。

var removedItems = oldList.Except(newList); 
var addedItems = newList.Except(oldList); 
相關問題