(Clipped from the mailing list)
There is a non-obvious feature that allows you to nest (or stack) object contexts, which is really helpful in rich client applications that allow modification of data in modal 'properties' style dialogs.
You can do something like:
ObjectContext parent = new ObjectContext(someDataset);
ObjectContext child = new ObjectContext(parent);
Afterwards you can use the child in the same way you would if it were connected to a data source. (Calling SaveChanges actually pushes the changes into the parent.)
As mentioned above, this is mainly used for modal forms in rich clients. Your parent context is connected to a data store. You open the model form with a child context and it modifies the objects in the child. Then, if the user clicks apply or okay you call SaveChanges on the child context which gets the changes back to the parent. If the user clicks cancel you just discard the child. To persist the changes in the data store, call SaveChanges on the parent...
