Linq для NHibernate в норме, но вам нужен запасной вариант.
Я использую его в большом проекте в качестве языка запросов по умолчанию, так как ожидаю, что он скоро станет более зрелым, и мне особенно нравится его агностицизм по отношению к базовой структуре - его можно использовать, если вы знакомы с основами картографирования O / R и Линк; Вам не нужно быть супер-знакомым с NHibernate в специальных. Другие варианты написания запросов, особенно API запроса критериев, требуют дополнительных усилий для обучения. Для большинства функций сложные запросы не требуются, и Linq to NHibernate подходит для некоторых Wheres и OrderBys.
Однако все еще встречаются странные случаи сбоев, когда сам запрос в порядке, а сгенерированный SQL просто нет. В этих случаях я не трачу время на изучение того, что случилось, а прибегаю к API запроса критериев.