On my latest project, I needed to come up with a Business and Data layer(s) with the following requirements:
1) They wanted to use a code generation tool to automatically generate the classes whenever the database (which was still under development) changed
2) The business objects would basically mirror the database tables
3) I had a couple of days to deliver.
Michael Eaton suggested using Castle Active Record (which uses NHibernate). I found some Active Record templates for CodeSmith, and within a few days was up and running with a fully functional Business/Data layer. I created partial classes which allows me to regenerate the private and public properties and mappings as requested when the database changes, the business logic resides in partial classes that are untouched when the code regenerates.
While the Active Record pattern probably not be a good fit for any complex application or workflow, for a simple data in/data out application with a tight timeline that allowed no object modeling or middle tier design phase, it turned out to be a perfect fit.
A side benefit was going from 0 to 60 with NHibernate in a very short time. I am one of those people who can read a thousand pages in minutes (ok, not really, but close) but I don't really understand anything until I see it. Active Record sits on top on NHibby and you can watch it run while slowly making your use cases more and more complex. The CodeSmith templates and code generation allowed me to get classes up and running in 5 minutes and then learn how the mapping works by watching it run in my own application that I already understood.