I have to design a Data Access Layer with .NET that probably will use more than one database management system (Mysql and Sql Server) with the same relational design.
I've found ADO.NET to be very useful for this. It has all the features you need to create a data access layer independent of the database you use.