Entity Framework 5 deep copy/clone of an entity
dbcontext, entity-framework-5
Solution
One cheap easy way of cloning an entity is to do something like this:
var originalEntity = Context.MySet.AsNoTracking()
.FirstOrDefault(e => e.Id == 1);
Context.MySet.Add(originalEntity);
Context.SaveChanges();
the trick here is AsNoTracking() - when you load an entity like this, your context do not know about it and when you call SaveChanges, it will treat it like a new entity.
If `MySet` has a reference to `MyProperty` and you want a copy of it too, just use an `Include`:
var originalEntity = Context.MySet.Include("MyProperty")
.AsNoTracking()
.FirstOrDefault(e => e.Id == 1);
Problem
I am using Entity Framework 5 (`DBContext`) and I am trying to find the best way to deep copy an entity (i.e. copy the entity and all related objects) and then save the new entities in the database. How can I do this? I have looked into using extension methods such as `CloneHelper` but I am not sure if it applies to `DBContext`.