?
--
I've got a scenario in which I want to move a bunch of object graphs
between contexts. Specifically, I'm trying to import the contents of
one database into another. The there is a context [CurrentContext]
connected to the primary DB, and another context [ImportContext]
connected to another DB. I'd like to copy the entities from
ImportContext into CurrentContext, either inserting new records or
updating the existing records.
Something like this.
ImportContext.Organization.MergeOption = MergeOption.NoTracking;
foreach(var org in ImportContext.Organizations.ToList())
{
CurrentContext.Attach(org); // or
CurrentContext.AddToOrganization(org);
}
When I try the Attach method, the entity isn't saved because the
entitystate is Unchanged, and I can't figure out how to mark it as
new. Also, it appears Attach doesn't work if the entity is new,
because the EntityKey is tied to ImportContext.
If I set the EntityKey to null, I lose the associations between the
Organization and other entities.
AddToOrganization has the same problem with losing the associations,
or would fail if the Organization was once already in the
CurrentContext.
What's the appropriate approach to doing this type of importing? I'm
currently using EF3.5 and can't update the project to EF4.
between contexts. Specifically, I'm trying to import the contents of
one database into another. The there is a context [CurrentContext]
connected to the primary DB, and another context [ImportContext]
connected to another DB. I'd like to copy the entities from
ImportContext into CurrentContext, either inserting new records or
updating the existing records.
Something like this.
ImportContext.Organization.MergeOption = MergeOption.NoTracking;
foreach(var org in ImportContext.Organizations.ToList())
{
CurrentContext.Attach(org); // or
CurrentContext.AddToOrganization(org);
}
When I try the Attach method, the entity isn't saved because the
entitystate is Unchanged, and I can't figure out how to mark it as
new. Also, it appears Attach doesn't work if the entity is new,
because the EntityKey is tied to ImportContext.
If I set the EntityKey to null, I lose the associations between the
Organization and other entities.
AddToOrganization has the same problem with losing the associations,
or would fail if the Organization was once already in the
CurrentContext.
What's the appropriate approach to doing this type of importing? I'm
currently using EF3.5 and can't update the project to EF4.