Eu sou completamente tendencioso, mas eu iria NHibernate. Consegui, com alguns ajustes, obter o mesmo código DAL funcionando com Access (para entrega de CD), Sql Server (para corporativo) e MySql (para rir). Isso já faz alguns anos e eu tive que me certificar de que os nomes dos campos/tabelas fossem válidos em todos os ambientes. Fora isso, o NHibernate fez o resto - brilhante.