我已经阅读了许多自引用帖子,但已经看到了我的具体排列方式。如果我错过了,请张贴链接。EF 5一对多自引用 - 代码优先
这是我的场景。我有两张桌子。 Feature包含Epics的集合,Epic可递归地包含一个儿童史诗集合(我可以拥有child child child(n)史诗集合)。
下面是我希望创建的模型类型的简单概述。
public class Feature
{
public int Id { get; set; }
public string Name { get; set; }
public virtual ICollection<Epic> Epics { get; set; }
}
public class Epic
{
public int Id { get; set; }
public string Name { get; set; }
public int FeatureId { get; set; }
public int ParentEpicId { get; set; }
public virtual ICollection<Epic> ChildEpics { get; set; }
}
我几乎可以指定模型构建器中的关系,但挂上了一件事情。史诗的第一个集合将有一个FeatureId FK返回到父Feature,并且一个空ParentEpicId,但是低于此的所有级别的史诗集合都将FeatureId设置为null,ParentEpicId设置为父级史诗的Id。 (FeatureId可以指向史诗级儿童树的顶级特征,但这不是必需的)
如何首先在EF代码中指定这种类型的关系?
如果不清楚或者您需要更多信息,请告诉我。