I know this is probably already regarded as crazy question, but I am looking for the most educated advice and PROVEN recommendation on how
@khovanskiiªn - here's the thing. Despite what you say about the wonderfulness of EF, it's not designed to do this. You can wax poetic all day about the wonders of a hammer, but it won't help you if your problem requires a wrench.
There are lots of solutions out there that will do what you want, but don't use EF and do it on the SQL side, it even has a fancy name. It's called ETL or Extract/Transform/Load, it's sole purpose is to take data from one set of tables and move it to another, possibly massaging the data in between.
You can, in fact, integrate these tools with client code seamlessly. For example, an SSIS package can be executed from client code, and parameters passed to it to control which data is worked on.
The fact of the matter is, Entity Framework is designed to work with a single context, and it only tracks relationships and changes on a single context. As soon as you separate it, it loses that information.
What's more, Entity framework is horrendously inefficient for this kind of thing because EF works on single entities, rather than bulk/batch operations. If you have 1 million records, it could take all day to do a single operation, whereas a sql-side batch operation could take a few minutes.
Do yourself a favor, look into SSIS (Sql Server Integration Services).