Well, at least the ones I've tried. Let's take a quick jump back down memory lane... something that Frans Bouma said to me way back here (http://codebetter.com/blogs/jay.kimble/archive/2005/06/01/63937.aspx#63954) struck a chord. I don't know ORMs that well, and despite my misgivings over Dynamic SQL, I thought I would take a second closer look and see if I could use an ORM to quickly prototype something.
Scott also chimed in (http://codebetter.com/blogs/jay.kimble/archive/2005/06/01/63937.aspx#64010) and told me that I was missing the boat. The addition of a single field means that you gotta go do a bunch of work.
Before I continue I want to point out that I don't mean to offend anyone who I have mentioned... I just wanted to mention that you pointed me down a path that I want to discuss my opinion on.
Ok, so I decided that if an ORM could help me prototype a little faster than I just might abandon some of my own views and try it... BTW, my professional goals are to get both better and faster at what I do (which is why I use CodeSmith, CodeRush, Refactor, and others); I figure if every programmer in America were to do this for themselves maybe there wouldn't be any concern of outsourcing/offshoring us all (but that's another discussion).
I guess I should come clean with the couple ORM products I looked at (although again I don't want to embarrass anyone). I looked at NHibernate, NJDX, RapiTier, and eXpress Persistent Objects for .NET (I also looked at Codus and there were a couple additional open source ones that I have forgotten). I was looking for time savings... especially in the area of maintenance where a new field was needed in the database.
I was thinking that I would end up with some kind of dynamically built Business Object
What I found out was that most of these required me to create my own Business Object that I then mapped back to the database. Many would do both Dynamic SQL as well as use Stored Procs. In general, I liked some of the products. My issue was that I really don't see the difference from what I'm doing with Templates. All of the ones I looked at would require me to do something with the app to output an additional field.
The only thing that looks easier is related to the advanced querying you can do with an ORM using Dynamic SQL. I think it's rare that someone needs these types of querying functionality. I think that SQL 2005 facilities for returning CLR objects looks much more promising to me.
One final disclaimer: as previously mentioned I actually liked a few of the products I looked at. eXpress Persistent Objects for .NET and NJDX, for instance, seemed to make it fairly easy to create a business object and start using it. I'm not sure how much time either one buys me (but I'm not done looking yet either).
[BTW, stuff I owned, was given to me or I could possibly get for free was at the heart of my selection of products... I guess I should read Jason's How-To-Select an ORM Guide]