For just one of my clients I am presently building a credit card applicatoin that conveys having a legacy Microsoft Access database. Moving to SQL server is regrettably not (yet) a choice. I presently write the queries using OleDbConnection, OleDbCommand and –good old- text based queries. Understandably I am a bit spoiled by utilizing modern O/RM tools and that i seem like I returned over time.

Which O/RM tool supports Microsoft Access in order to eliminate this uglyness?

I have also used EntitySpaces for my project make use of a Legacy MSAccess -> SQLServer move project. If you go lower that path it's pretty easy.

Checkout XmlDataMapper an easy free ORM (LGPL Licence) which assists just about all databases including Access The sample project provided ought to be sufficiently good to get began.

To integrate XmlDataMapper all that you should do is 4 little steps

  1. Produce a Business / DTO for that tables within the Database
  2. Create an XML File using the mapping information between your table and also the DTO.
  3. Specify the DTO and xml file within the configuration.
  4. Just call the DTOConverter.Convert(dataReader) along with other such techniques to transform your database record to DTO / Business

Old subject, but added XPO from Developer Express.

It's pretty mature now, it has been around for some time and lately got plenty of additional features. It is also the actual ORM for XAF, Developer Express' application framework.

XPO Supports both .mdb and also the new .accdb Access files (and a lot of other motorists), has linq support, supports client/server situations, enables execution of SQL should you so require, etc.

Should you stay generic and do not call db-specific features, you can easily alter the connection string and employ another database without altering another type of code.
Ideal for preparing in advance to help you switch from an Access DB if you want afterwards...