With the connection definition built and resolved, we establish a generic repository pattern within the solution, encapsulating the logic that is extremely generic in nature (through interfaces) and that which is specific to each underlying ORM solution or database we are supporting.
We initially were going to try to support Microsoft SQL Server and PostGRESql, but again, we burned a lot of time attempting to do this. A word to the wise, do not attempt this until you need to do this. You will burn extra time you cannot afford as a startup.