I've used NHibernate, Linq2Sql, and Entity Framework in real projects. I like EF the best, particularly EF Code First. I'm not fond of NHibernate's configuration files and lack of linq support. EF Code First has its quirks too, but seems very lean.
Basic queries do work, but not ready for production use.
I was able to put in full text function support in NH HQL rather easily in an app and I don't see that ability in EF. I'm working on a desktop application and the ability to precompile the dynamic proxies would help the startup time of the application. I would love if I could do that in EF, I've done it before in NHibernate.