I am sure this is not possible. ObjectStateManager is the heart and soul of tracking and saving changes for an ObjectContext and is closely intertwined with context. This will require a simple transplant operation. From a technical point of view, you will not be able to clone one without using tons of reflection, because most of its state is managed domestically. And then ObjectContext.ObjectStateManager does not have a setter.
The root of your problem is to have a context to represent (at least maybe even one global context?). Context per view is a viable option for rich client applications, but requires asynchronous processing of parameter changes. Longer context life is no longer an option.
The solution may be to bind (disabled) view models to the user interface, instead of entity objects, and create an instance of the context in a separate thread (well, Task ) to save the changes.
You might be interested in another new feature in EF 6 (now in alpha): the built-in async . I have not experimented with this yet, but it looks promising.
Gert arnold
source share