Это возможно, но немного странно.
Во-первых, чтобы объявить это в C #, модель должна выглядеть следующим образом:
public class Model : IHasList<A>, IHasList<B>
{
IList<A> IHasList<A>.Items { get; set; }
IList<B> IHasList<B>.Items { get; set; }
}
Итак, вы должны заставить NHibernate понять, что:
<bag name="IHasList<A>.Items" table="ModelItemA">
<key />
<one-to-many class="A" />
</bag>
<bag name="IHasList<B>.Items" table="ModelItemB">
<key />
<one-to-many class="A" />
</bag>
(я предполагаю, что A и B являются сопоставленными сущностями с регулярным отношением один-ко-многим, измените его на множество-ко-многим или элемент и добавьте каскадные / обратные атрибуты при необходимости)
Это довольно чисто, беспорядок на самом деле вводится с помощью экранирования XML. Вам также придется использовать полные имена для классов.