Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Entity framework 实体框架:在代码优先的TPH层次结构中建立关系表_Entity Framework_Ef Code First_Entity Framework 4.3 - Fatal编程技术网

Entity framework 实体框架:在代码优先的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

我正在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; }
}
公共抽象类框
{
公用信箱()
{
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表中设置关系,而不是创建外部关系表来关联项、电话和事件对象。我找不到一个很好的例子来说明这个映射是什么样子的。

它正在创建一对多的自引用关系——正如您的模型所定义的那样。您是否希望连接表具有多对多关系?是的,基本上,这只是实际对象图的一小部分。盒子有很多种类型,它们之间有很多关系。将关系存储在一个地方似乎更有意义。