【发布时间】:2013-02-13 21:24:13
【问题描述】:
我已经阅读了许多一对多的自引用帖子,但看到了我的具体排列。如果我错过了,请发布链接。
这是我的场景。我有两张桌子。 Feature 包含 Epic 的集合,Epic 可以递归地包含子 Epic 的集合(我可以有 child child child (n) Epic 集合)。
下面是我要创建的模型类型的简单概述。
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; }
}
我几乎可以在模型构建器中指定关系,但是却被一件事挂断了。第一个史诗集合将有一个返回父 Feature 的 FeatureId FK 和一个 null ParentEpicId,但低于此的所有级别的史诗集合都将 FeatureId 设置为 null,ParentEpicId 设置为父史诗的 Id。 (FeatureId 可以指向史诗儿童树的顶级特征,但这不是必需的)
如何先在 EF 代码中指定这种类型的关系?
如果不清楚或需要更多信息,请告诉我。
【问题讨论】:
标签: c# entity-framework entity-framework-5 code-first