Рассмотрим следующие интерфейсы и классы ...
public interface ICategoryParent
{
ICollection<Category> Categories { get; set; }
}
public interface IColorParent
{
ICollection<Color> Colors { get; set; }
}
public class Category
{
public string Name { get; set; }
public ICategoryParent Parent { get; set; }
}
public class Color
{
public string Hue { get; set; }
public IColorParent Parent { get; set; }
}
public class ObjectA : ICategoryParent, IColorParent
{
//[....] Some other properties
ICollection<Category> Categories { get; set; }
ICollection<Color> Colors { get; set; }
}
public class ObjectB : ICategoryParent, IColorParent
{
//[....] Some other properties
ICollection<Category> Categories { get; set; }
ICollection<Color> Colors { get; set; }
}
Может ли кто-нибудь указать мне правильное направление, как правильно отобразить это в NHibernate (или Fluent NHibernate)?
В идеале таблицы категорий и цветов должны иметь столбец дискриминатора, чтобы сообщить нам тип конкретного типа родительского элемента. Я также хочу, чтобы ObjectA и ObjectB охотно загружали свойства Categories и Colors.
Спасибо,
Мэтт