Jestem całkowicie stronniczy, ale wybrałbym NHibernate. Udało mi się, z pewnymi poprawkami, uzyskać ten sam kod DAL działający z Access (dla dostarczania na CD), SQL Server (dla firmy) i MySql (dla żartu). To już kilka lat temu i musiałem się upewnić, że nazwy pól/tabeli są prawidłowe we wszystkich środowiskach. Poza tym NHibernate zrobił resztę - genialnie.