Entity framework 实体框架:在代码优先的TPH层次结构中建立关系表
我正在TPH系统中建立一系列相关对象之间的关系Entity framework 实体框架:在代码优先的TPH层次结构中建立关系表,entity-framework,ef-code-first,entity-framework-4.3,Entity Framework,Ef Code First,Entity Framework 4.3,我正在TPH系统中建立一系列相关对象之间的关系 public abstract class Box { public Box() { Boxes = new HashSet<Box>(); Descriptors = new HashSet<Descriptor>(); } public Guid Id { get; set; } public virtual ICollection<Box
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; }
}
公共抽象类框
{
公用信箱()
{
box=新的HashSet();
描述符=新的HashSet();
}
公共Guid Id{get;set;}
公共虚拟ICollection框{get;set;}
公共虚拟ICollection描述符{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; }
}
公共类项目:框
{
公共样本()
{
Events=newhashset();
Phones=newhashset();
}
公共虚拟ICollection电话{get;private set;}
公共虚拟ICollection事件{get;private set;}
}
公共类电话:Box{}
公开课活动:盒子
{
公共项{get;private set;}
}
使用TPH,似乎是在Box表中设置关系,而不是创建外部关系表来关联项、电话和事件对象。我找不到一个很好的例子来说明这个映射是什么样子的。它正在创建一对多的自引用关系——正如您的模型所定义的那样。您是否希望连接表具有多对多关系?是的,基本上,这只是实际对象图的一小部分。盒子有很多种类型,它们之间有很多关系。将关系存储在一个地方似乎更有意义。