Использование NHibernate и Fluent Mappings.
У нас есть свойство (Groupable) класса (GroupAssignment), которое реализует интерфейс (IGroupable).Другим свойством того же класса является перечисление (ItemType), которое указывает источник источника IGroupable, т. Е. Из какой таблицы.
Можем ли мы отобразить эту конфигурацию так, чтобы NHibernate заполнял свойство IGroupable, ссылаясь на правильную таблицу на основена Enum дискриминатор?Если да, то как мы можем этого достичь?
Обратите внимание, что свойство IGroupable имеет отношение один к одному с классом GroupAssignment.
public class GroupAssignment
{
public virtual new long ID { get; private set; }
public virtual Group Group { get; set; }
public virtual TypeEnum.TypeGroupItem ItemType { get; set; }
public virtual IGroupable Groupable { get; set; }
}
В идеале NHibernate должен получить IGroupable из
TableAкогда ItemType == TableA,
TableB, когда ItemType == TableB и т. д.
Я также должен добавить, что каждая из таблиц, управляемых перечислением ItemType, отображается на классы, которые реализуют интерфейс IGroupable.