Я люблю Linq to SQL, он очень прост в использовании. Реализуйте шаблон репозитория и используйте LINQ to SQL в качестве первой реализации вашего интерфейса репозитория. Вы обнаружите, что с помощью этого инструмента очень легко быстро создать хранилище. Вы всегда можете реализовать второй репозиторий, используя NHibernate, не ломая свое приложение, а затем сравнить свой опыт с двумя инструментами.
NHibernate "более мощный" ... Я думаю, это означает, что вы можете использовать его против любой базы данных, и это все. Нам нужно многому научиться, и если вы пойдете по этому пути, убедитесь, что вы в полной мере используете Fluent NHibernate, чтобы избежать всего мусора карт. Это намного чище, если иметь в виду кучу сопоставлений XML.
Я нахожу NHibernate разочаровывающим, потому что мне нравится запрашивать базу данных с помощью LINQ и проецировать (отображать) на модель. Я знаю, что есть LINQ для NHibernate, но я не могу сказать, что знаю любого, кто его использует.
Как правило, я бы сказал, использовать NHibernate, если вы счастливы получить все по идентификатору и пройти оттуда объектную модель. Как только вы захотите выполнить более сложные запросы, вам лучше быть готовыми к разочарованию.