NHibernate Mapping для нескольких интерфейсов - PullRequest
1 голос
/ 16 апреля 2011

Рассмотрим следующие интерфейсы и классы ...

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.

Спасибо, Мэтт

...