Ne znam koliko ti ovo resenje igra, ali mozes da iskoristis ODBC.NET data provider i u data layeru iskoristis OdbcConnection, OdbcCommand, OdbcDataAdapter i ostale klase iz System.Data.Odbc namespace-a, u zavisnosti od potrebe.
ODBC connection stringovi ce ti se razlikovati za razlicite engine, ali ce tvoj kod biti isti u svim slucajevima jer ce native ODBC drajver za bazu raditi neophodne konverzije, dakle ne treba ti engine specific instanciranje, interfejsi i ostala cudesa. Sve baze koje si pomenuo plus jos drugih imaju svoje ODBC drajvere.
Naravno ovo sve pod uslovom da je ODBC standard dovoljan za tvoje potrebe, posto on radi svodjenje baza na najveci zajednicki delilac

i ne daje neke specificnosti koje native .NET drajveri daju. ALi ako se tvoje potrebe svode na select/insert/update/delete onda moze da ti odradi posao.
Sloba je za 12 godina promenio antropološki kod srpskog naroda. On je od jednog
naroda koji je bio veseo, pomalo površan, od jednog naroda koji je bio znatiželjan, koji
je voleo da vidi, da putuje, da upozna,
od naroda koji je bio kosmopolitski napravio narod koji je namršten, mrzovoljan,
sumnjicav, zaplašen, narod koji se stalno nešto žali, kome je stalno neko kriv - Z.Đinđić