2012-03-06 102 views
0

我已經暴露實體框架工作的DbContext的POCO實體WCF(沒有跟蹤啓用),並通過我的客戶,當我試圖更新家長和相關entieis的組合。只有父實體被更新,但子實體未被更新。實體框架4.1跟蹤父/子實體,而不STE

我在嘗試一些東西,如...客戶有一個或多個客戶地址實體。在我的客戶中,我添加了新客戶地址,刪除了現有客戶地址,並更新了現有客戶地址並修改了客戶對象iteslf中的一些內容。現在,我想一次更新這些更改。

目前,它只更新客戶而忽略其餘。

我下的印象是,與EF 4.1更改跟蹤capablity已得到改進,我們就可以用了STE(自身跟蹤實體)達致這。我的假設是正確的? DBContext可以嗎?任何幫助或指示?

回答

1

編號EF更改跟蹤僅針對附屬實體跟蹤更改。如果您將實體序列化並將其發送到其他地方,則不再進行跟蹤。它將成爲您的WCF客戶端上的分離場景和you are responsible for telling EF what changes happened。如果你只是附加實體並將父母狀態設置爲修改,那麼它將完成這一操作 - 它只會更新父項,因爲你沒有告訴它其他項已經改變。

因此,要麼從客戶端發送有關修改實體的附加信息,並在保存更改之前將每個實體或關係設置爲正確狀態,或從數據庫加載當前狀態(當前父級和子級)並將其與從客戶端接收的狀態合併。