
Often you want to duplicate entities or their values in order to save an entity with a new ID. But what is the best way to do this?
There are many examples in the vastness of the Internet based on Object.Clone() or Reflection.
But this is not necessary. Entity Framework has inherent methods to copy values.
DbContext Clone
To simply copy values from an existing entity to a new entity, you have two stable ways.
Copy values to a local var first:
1var values = db.Entry(oldEntity).CurrentValues.Clone();
2var newEntity = ...
3db.Entry(newEntity ).CurrentValues.SetValues(values);
4newEntity.Id = 0;
Directly copy values from old entity to new entity.
1db.Entry(newEntity).CurrentValues.SetValues(oldEntity);
2newEntity.Id = 0;
These methods are stable and not based on any Reflection tinkering.
Related articles

Mar 25, 2026 · 14 min read
The new Microsoft Testing Platform for .NET: An introduction with practical samples and migration guidance
Testing in .NET has historically been associated with VSTest. That choice was reasonable for a long time because VSTest offered broad …

Mar 17, 2026 · 15 min read
GitHub Copilot - Custom Agents for Full-Stack Teams: A Practical Operating Model for .NET, React and Azure
GitHub Copilot custom agents allow teams to define specialized AI assistants, each with its own role, tool access and behavioral boundaries. …

Mar 10, 2026 · 15 min read
.NET NuGet Trusted Publishing with GitHub Actions
Publishing NuGet packages has traditionally required one uncomfortable compromise: a long-lived API key had to exist somewhere in the …
Let's Work Together
Looking for an experienced Platform Architect or Engineer for your next project? Whether it's cloud migration, platform modernization or building new solutions from scratch - I'm here to help you succeed.

Comments