Change Entity State

entity-framework

Question

I currently have an entity model with a bunch of deleted items, the state is deleted. Is there a way to "undelete" them? I know which Items I want to undelete, but I don't know how to undelete the items. Ideally I'd like to get it back to an unchanged state.

1
4
3/16/2011 7:56:58 PM

Accepted Answer

Do you have the option of just not committing the connection context? - dispose the ObjectContext without calling objectContext.SaveChanges(); Of course, if you have certain changes that you do wan't saved, they will not persist either.

If you called objectContext.DeleteObject(x) you can't undelete it and still save changes.

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

// objectStateEntry.State is not setable 

ObjectStateEntry does have the OriginalValues property so you could, in theory, painstakingly recreate a collection that represents the original changes, minus the unwanted ones, exit the objectContext, open a new one and rebuild those changes minus the unwanted ones there. Probably not worth the hassle, but there is no documented way to unmark something for deletion at this time.

2
1/31/2013 2:14:05 PM

Popular Answer

after you call

objectContext.DeleteObject(x),

you can simulate undelete of object x with

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



Related Questions





Related

Licensed under: CC-BY-SA with attribution
Not affiliated with Stack Overflow
Licensed under: CC-BY-SA with attribution
Not affiliated with Stack Overflow