Soy completamente parcial, pero iría a NHibernate. Logré, con algunos ajustes, que el mismo código DAL funcione con Access (para entrega de CD), Sql Server (para empresas) y MySql (por diversión). Esto fue hace algunos años y tuve que asegurarme de que los nombres de los campos/tablas fueran válidos en todos los entornos. Aparte de eso, NHibernate hizo el resto:brillante.