I've implemented the Persistence Layer using the Scott Ambler's white paper as a design source. You can get developer snapshots from the Download section.
Current implementation has the following features.
Encapsulation of the persistence mechanism. You should only call the save, delete, restore methods of your persistent objects and the Persistence Layer will automatically perform an action with your database. Multiple object actions. You can retrieve and delete multiple objects at once. When you save delete or update any object you can do the same action with associated objects.