Use adapter.
Then, create a small factory for DataAccessAdapter objects. In your code, you then use IDataAccessAdapter adapter = YourFactory.Create(someDbIDYouInvent);
adapter.SaveEntity(..);
etc..
You create for each database a project and you generate code for that. Keep the db structure the same and avoid db specific types like unique_identifier, bit etc.
Of one generated project, you keep the db generic vs.net project and for all databases, you keep the dbspecific projects.