Да, вы можете использовать их в реальных приложениях;Я делаю.
Конечно, почти вся работа происходит с первого раза.Моя практика состояла в том, чтобы создать отдельный проект, который ссылается на сопоставления в моей основной сборке проекта и обрабатывает создание базы данных и первоначальный импорт данных, если таковые имеются.
Когда проект находится в производстве, я обычно выгружаю этот проект изрешение, но держите его для справки или если мне когда-нибудь понадобится перейти от создания сценариев к обновлению сценариев.
Что касается способа, которым NHibernate создает базу данных, вам нужно немного больше специфицировать в ваших отображениях Fluentчем вы могли бы.Мне нравится указывать значение null / not null, имена ограничений внешнего ключа и т. Д., Чтобы иметь максимальный контроль над способом создания базы данных.
Я не думаю, что вы когда-нибудь захотите использовать автоматическое отображение в этом сценарии.