Я использовал как NHibernate, так и LINQ to SQL. С моей точки зрения, это зависит от проекта, если мне нужно что-то быстрое, я бы выбрал L2S, так просто создать отображение dbml и начать его использовать. Если я разрабатываю более высокоуровневое корпоративное решение, я бы выбрал проверенный и надежный ORM - NHibernate, я считаю, что функции ведения журнала и транзакций просты в использовании.
LINQ to SQL имеет относительно короткую кривую обучения, а NHibernate - гораздо более крутой кривой обучения.
LINQ to SQL поддерживает только SQL Server, поэтому, если у вас есть база данных Oracle, решение уже принято - NHibernate.
Я бы рекомендовал проверить http://www.summerofnhibernate.com/ на отличные скринкасты по изучению NHibernate.