Для генерации кода / сопоставления существует ряд шаблонов для MyGeneration для создания файлов конфигурации и / или классов из базы данных. CodeSmith также имеет шаблоны NHibernate, но CodeSmith не бесплатен, поэтому у MyGeneration есть преимущество.
MyGeneration имеет графический интерфейс, который позволяет загружать шаблоны, управлять соединениями с базой данных, задавать свойства шаблонов, генерировать код и т. Д. Это не лучший пользовательский опыт, но он работает.
Как уже упоминалось, Fluent-NHibernate определенно стоит попробовать, если вы не хотите писать файлы сопоставления XML. Документация немного не существует, но ее довольно легко начать. Если вы делаете много рефакторинга, это может сэкономить время.
Вот пример отображения Fluent-NHibernate:
public CustomerMap : ClassMap<Customer>
{
public CustomerMap()
{
Id(x => x.ID);
Map(x => x.Name);
Map(x => x.Credit);
HasMany<Product>(x => x.Products)
.AsBag();
Component<Address>(x => x.Address, m =>
{
m.Map(x => x.AddressLine1);
m.Map(x => x.AddressLine2);
m.Map(x => x.CityName);
m.Map(x => x.CountryName);
});
}
}