可能是一個愚蠢的問題,但我仍然試圖圍繞nHibernate包裹頭部。如何確定nHibernate對象是否發生了變化
據我所知,使用該軟件,nHibernate要求您做一點額外的處理,以妥善保存更改。
讓我們想象一下我有一個可以包含很多對象Y的對象X.我將創建一個包含2個Y的X,每個Y都有自己的屬性。然後我決定我要更新X.我要添加一個新的Y,並更改現有的Y中的一個。
所以我使用它的ID加載我的對象X.然後,我遍歷所添加的Y,將它們添加到X並使用更新語句保存批次。
如果你這樣做,你會發現「老」Y在數據庫中成爲孤兒。當我想到這件事的時候,正是我期望會發生的事情 - 畢竟我還沒有擺脫那些東西,我剛剛創建了一些新的東西。
所以有兩種方法來看待這個。要麼我應該刪除所有Y數據然後重新創建它,或者我應該能夠標記爲nHibernate,我正在做的是一個更改,它應該更新現有對象而不是創建新對象。麻煩的是,我不確定哪個是「正確」的方法,或者如何最好地做到這一點 - 前者看起來效率非常低,後者意味着設置了很多「改變」的標誌和非常繁瑣的代碼。
所以我敢肯定,我的愚蠢一定會有一個更簡單的解決方案。有人能指出我在最好的辦法以及如何最好地處理它NHibernate的......也就是說,如果這個問題讓任何意義:)
乾杯, 馬特