У меня есть общий тип объекта Entity и некоторые классы, которые могут относиться к Entity, такие как EntityDescription и EntityLocation (отношения «много-к-одному»).Отображение NHibernate (Fluent) абстрагирования промежуточного класса
Entity Класс:
public class Entity
{
public virtual Int64 ID { get; set; }
// and other properties
}
EntityDescription класс:
public class EntityDescription
{
public virtual Int64 ID { get; set; }
public virtual Entity Entity { get; set; }
public virtual String Description { get; set; }
// and other properties
}
EntityLocation класс:
public class EntityLocation
{
public virtual Int64 ID { get; set; }
public virtual Entity Entity { get; set; }
public virtual String Location { get; set; }
// and other properties
}
Есть целый ряд более конкретных типов объектов, например, Компания, Поставщик, Сотрудник и т. Д. Чтобы сделать вещи более интересными, EntityDescription применяется ко всем определенным типам, но только некоторым типам могут быть назначены местоположения (EntityLocation применим только к некоторым типам).
Как сопоставить эти классы в Fluent-NHibernate, чтобы список EntityLocation отображался только на некоторых определенных классах, которые могут иметь местоположения (например, компания и поставщик), а не на общем классе Entity?
// This property can exist in Entity
public virtual IList<EntityDescription> Descriptions { get; set; }
// I want this property to only exist in some specific types, not in Entity
public virtual IList<EntityLocation > Locations { get; set; }
Любая помощь оценивается. Заранее спасибо.