Я не верю, что NHibernate сможет скомпилировать и то и другое, чтобы создать единое отображение. Если цель состоит в том, чтобы использовать разные наборы сопоставлений в одном приложении и другом, вам нужно просто создать два разных сопоставления. Если цель состоит в том, чтобы иметь подклассы, существует интерфейс SubclassMapping, который вы можете расширить.
Edit:
При просмотре моих заметок расширение моего ответа о создании другого набора сопоставлений может быть в том случае, если в ваше приложение включена некоторая функция, которая требует другого (иногда более, иногда менее задействованного) сопоставления. Для этого вам нужно, чтобы NHibernate генерировал их отдельно и добавлял их в конфигурацию отдельно. Используя соглашения, это создает два отдельных набора отображений (которые содержат некоторые перекрывающиеся, но по-разному отображаемые объекты), которые включены в одну конфигурацию:
NHibernateConfiguration.BeforeBindMapping += (sender, args) => args.Mapping.autoimport = false;
var pluginMappings = new PluginMapper().Mappings;
foreach (var hbmMapping in pluginMappings)
NHibernateConfiguration.AddDeserializedMapping(hbmMapping, "PluginModel");
var mainAppMappings = new AppMapper().Mappings;
foreach (var hbmMapping in mainAppMappings)
NHibernateConfiguration.AddDeserializedMapping(hbmMapping, "AppModel");