我正在 TPH 系统中建立一系列相关对象之间的关系。
public abstract class Box
{
public Box()
{
Boxes = new HashSet<Box>();
Descriptors = new HashSet<Descriptor>();
}
public Guid Id { get; set; }
public virtual ICollection<Box> Boxes { get; set; }
public virtual ICollection<Descriptor> Descriptors { get; set; }
}
这个基类由例如 3 个单独的子类扩展
public class Item: Box
{
public Sample()
{
Events = new HashSet<Event>();
Phones = new HashSet<Phone>();
}
public virtual ICollection<Phone> Phones { get; private set; }
public virtual ICollection<Event> Events{ get; private set; }
}
public class Phone : Box {}
public class Event: Box
{
public Item { get; private set; }
}
使用 TPH,它似乎是在 Box 表中设置关系,而不是创建外部关系表来关联 Item、Phone 和 Event 对象。我找不到一个很好的例子来说明这个映射的样子。