NHibernate работает только с реляционными базами данных. Если вы использовали на своем сервере решение NoSQL (например, RavenDB / MongoDB / etc), вы не сможете использовать NHibernate.
Тем не менее, я использую NHibernate для каждого проекта, где вышеупомянутое не применяется. После того, как вы преодолели начальную кривую обучения, связанную с ней, у вас действительно нет причин не использовать ее, за исключением, возможно, как упомянуто @degorolls, в сценариях, где ваше приложение в первую очередь выполняет запись данных. Вы получаете слишком много от использования NHibernate, чтобы не использовать его даже в простых приложениях, в которых пользовательский интерфейс расположен прямо над хранилищем данных.