Посмотрите на nHibernate, снова. На этот раз внимательно: -)
Хотя nHibernate настроен на по умолчанию , настроенный внешним XML-файлом, это не обязательно так.
В моем проекте мне очень понравилось использовать XML, поэтому я сохранил его - но вместо того, чтобы сохранять его извне (где конечные пользователи могли бы дурачиться с ним), я загружал файл отображения из встроенного ресурса.
Кроме того, насколько мне известно, есть возможность отказаться от XML и настроить nHibernate с помощью атрибутов класса в .NET.