我目前有一个带有一堆已删除项目的实体模型,状态已删除。有没有办法“删除”它们?我知道我要删除哪些项目,但是我不知道如何删除项目。理想情况下,我想使其恢复到未更改的状态。

最佳答案

您是否可以选择不提交连接上下文? -处置ObjectContext而不调用objectContext.SaveChanges();当然,如果您确实要保存某些更改,那么它们也不会持久保存。

如果您调用objectContext.DeleteObject(x),则无法取消删除它并仍然保存更改。

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

// objectStateEntry.State is not setable


ObjectStateEntry确实具有OriginalValues属性,因此,从理论上讲,您可以精心创建一个代表原始更改的集合,减去不需要的更改,退出objectContext,打开一个新的并重建这些更改减去那里不需要的更改。可能不值得麻烦,但是目前尚无记录的方法来取消标记要删除的内容。

09-25 17:10