In The craft
Don't Write ETL in C#

Unless ETL is the company’s core competency there is very little reason to write and maintain ETL in C#. In the short term it’s going to be expensive, it will be slow, there will be mistakes (i.e. corrupt data), there will be edge cases, there will be duplication between ETL implementations, it will be fragile and it will be increasingly expensive in the long run. Honestly, what developer wants to spend his/her days writing and maintaining ETL in C#? I’ve done it. It’s about as far away from creative work as one can get.
Use a tool like Informatica, a company whose business is ETL. They’ve been working this problem for over 15 years. They have it solved. Their tools are drag and drop, reusability is built-in, as is performance. Most anyone (i.e. developers don’t have too) can create ETL with Informatica tooling. I’m not trying to sell Informatica, use any tool. Just don’t re-invent the wheel and write custom ETL code.
In the long run buying a tool, such as Informatica or using SSIS will save the company potentially millions. And best of all you will not have to maintain the ETL or be responsible for it when it breaks.