Я не верю, что NHibernate сможет скомпилировать оба вместе, чтобы создать сингулярное отображение. Если целью является использование другого набора сопоставлений в одном приложении по сравнению с другим, вам нужно просто создать два разных сопоставления. Если цель состоит в том, чтобы иметь подклассы, есть интерфейс SubclassMapping, который вы можете расширить.
Edit:
Просматривая мои заметки, расширение на мой ответ о создании другого набора отображений будет случай, когда у вас есть некоторые функции включенных в приложение, которое должно другие (иногда больше, иногда менее вовлечено). Для этого вам необходимо, чтобы NHibernate генерировал их отдельно и добавлял их в конфигурацию отдельно. Используя соглашения, это создает два отдельных набора отображений (которые содержат некоторое перекрывание, но по-разному отображается, entites), которые подключены к одной конфигурации:
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");
Спасибо. Цель заключалась в том, что плагин может изменять отображение, т. Е. EntityMap1 будет находиться в основном приложении и EntityMap2 в плагине. Решена эта проблема путем изменения сгенерированного XML с использованием Linq в XML (см. Мой ответ для кода). – Test