Persist.NET

Persist.NET is a persistence framework entirely written in C# and available under LGPL license.
This project is partially based on the java implementation of Artem Rudoy, wich uses Scott Ambler's white paper as a design source.
Main features of Persist.NET :
   1. Complete Database Abstraction: By calling the Retrieve, Save, Delete methods of your persistent objects, Persist.NET automatically performs the corresponding action on your database.
   2. Associations : By declaring object associations in your schema, it is possible to execute update or delete operations on associated objects.
   3. Transactions : Implicit (using Attributes) or explicit transaction mechanism is available.
   4. Locking : Optimistic lock is available.
   5. Multi-database support :Any ADO.NET driver can be used to access database : OleDb,Sql,Oracle,MySQL,PostgreSQL,...

Go to http://persistdotnet.sourceforge.net/

See also these related projects.