Если вам нужно иметь несколько контекстов и работать напрямую с вашими сущностями, взгляните на методы Attach и Detach, которые, как подсказывают имена, используются для связи / отсоединения объекта от контекста, из которого он был получен.Обратите внимание, что эти методы только отрывают объект, который вы передаете в качестве аргумента, а не связанные объекты, поэтому вам, вероятно, придется пройтись по соединенным объектам, отсекая каждый из них, что беспорядочно.
var entities1 = new TherapyDatabaseDevEntities();
var patient1 = entities1.Patients.Single(p => p.Id = 12345);
entities1.Detach(patient1);
//loop through associated entities calling Detach on each
var entities2 = new TherapyDatabaseDevEntities();
entities2.Attach(patient1);
//loop through associated entities calling Attach on each
Мои предпочтениябыло бы использовать viewmodels, чтобы вы не редактировали сущности напрямую, а представляли их.Когда пользователь явно сохраняет объект, извлекает этот объект и обновляет изменения из этого объекта только в новом контексте.
var entities1 = new TherapyDatabaseDevEntities();
var patient1 = entities1.Patients.Single(p => p.Id = 12345);
... избавьтесь от своего контекста, он больше не нужен, и внесите свои измененияздесь
var entities2 = new TherapyDatabaseDevEntities();
var patient2 = entities2.Patients.Single(p => p.Id = 12345);
patient2.Property1 = patient1.Property1;
... обновление с другими изменениями (есть способы сделать этот код чище, просто показ простейшего примера)
entities2.SaveChanges();
entities2.Dispose();
Некоторые справочные материалы по Присоединению / Отсоединению здесь - http://msdn.microsoft.com/en-us/library/bb896271.aspx
Выполните поиск по времени существования контекста структуры сущности, по этому вопросу много дискуссий, которые могут помочь вам выбрать маршрут, который соответствует вашим потребностям.