Auto-generated generic data layer
It looks like you're basically writing Entity Framework. If so...why not use Entity Framework?

It also looks like in addition to your rewriting of Entity Framework, you're writing the whole generic repository pattern + unit of work pattern that people like to add on top of it. I would strongly recommend against that. It ends up being a lot of extra code and very little or negative benefit, considering that EF/your ORM pretty much uses the repository pattern anyway (if you have a DataContext structured like EF's).

On top of all of that, you're also writing your own custom dependency injection/IOC container now with your static dictionary. The generic type problems you have are based on your unit of work problem. See my answer on this CR post for details.

Instead of writing everything from scratch, I would recommend using vanilla EF with no repository pattern, along with an already-existing IOC container, and wire up DI the plain old vanilla way the Web API site recommends or the way Mark Seemann recommends if you're opinionated about DI.