NHibernate не нуждается в Fluent Mappings для генерации схемы базы данных . Эта функция встроена в ядро NHibernate:
new SchemaExport(_configuration).Execute(false, true, false);
Однако, по моему опыту, это в основном полезно для интеграционных тестов в памяти или начальных развертываний. Производственные базы данных должны быть обновлены . Если вы останетесь без дела, то вам нужно будет добавлять и удалять столбцы, таблицы и внешние ключи, не влияя на данные. В этом есть аспект преемственности и управления версиями. NHibernate знает только ваше текущее отображение. Например, он не знает, что 2 месяца назад вы сохранили имя и фамилию своего клиента в столбце с именем «CustomerName», а затем решили разделить его на два столбца «FirstName» и «LastName» (что, вероятно, является самым примитивным изменением может быть сделано). Задача NHibernate состоит в том, чтобы отобразить вашу текущую схему на объекты, а не помнить варианты моделирования данных, сделанные несколько лет назад.
По моему опыту, нет волшебного инструмента, который будет писать сценарии обновления, они должны быть написаны вручную или, по крайней мере, проверены разработчиком. Инструменты могут предоставить вам среду для выполнения этих сценариев, например RoundhouseE . Скотт Аллен имеет превосходную серию о подходе только вперед, однократный .