改變實體狀態

entity-framework

我目前有一個帶有一堆已刪除項目的實體模型,狀態被刪除。有沒有辦法“取消刪除”他們?我知道我想取消刪除哪些項目,但我不知道如何取消刪除這些項目。理想情況下,我想讓它恢復到未改變的狀態。

一般承認的答案

您是否可以選擇不提交連接上下文? - 在不調用objectContext.SaveChanges()的情況下釋放ObjectContext;當然,如果你有一些你不會保存的變化,它們也不會持續存在。

如果您調用了objectContext.DeleteObject(x) ,則無法objectContext.DeleteObject(x)刪除它並仍然保存更改。

ObjectStateEntry objectStateEntry = objectContext.ObjectStateManager.GetObjectStateEntry(x);

// objectStateEntry.State is not setable 

ObjectStateEntry確實具有OriginalValues屬性,因此理論上,您可以精心地重新創建一個表示原始更改的集合,減去不需要的更改,退出objectContext,打開一個新的並重建那些更改,減去那些不需要的更改。可能不值得麻煩,但目前還沒有記錄的方法可以取消標記刪除的內容。


熱門答案

你打電話之後

objectContext.DeleteObject(x)

你可以模擬對象x的反刪除

objectContext.Detach(X); objectContext.Attach(x)的



Related

許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因
許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因