Имея 2 отдельные базы данных с одной и той же схемой, мне нужно копировать сущности (записи) из одной базы данных в другую, используя Entity Framework 4.
Я создаю 2 контекста, но получаю следующую ошибку при добавлении одной сущности во второй контекст:
An entity object cannot be referenced by multiple instances of IEntityChangeTracker.
Я знаю, что могу избежать этой ошибки, если использую метод Detach, но в этом случае связанные сущности будут потеряны!
Пример кода:
var cx = new MyEntities();
//eager load related tables
var allEntities = from x in cx.Reservation.Include("Detail.MoreDetail")
select x;
// new instance of context but connected to a second database
var cx2 = new MyEntities( new ConnectionString...);
foreach (var e in allEntities)
{
//cx.Detach(reservation); // can't detach, or related entities will be lost
cx2.AddToReservation(reservation); // error happens here!
cx2.SaveChanges();
}
Как я могу выполнить такую операцию?
В качестве альтернативы, как я могу отделить сущность, не потеряв связанных сущностей?