【发布时间】:2016-03-16 10:33:37
【问题描述】:
我是 EF 新手,正在努力实施以下方案。我有一个实体,我想拥有一个导航属性到另一个相同的实体。例如
public class Stage {
public int ID { get; set; }
public int? NextStageID { get; set; }
public string Name { get; set; }
public virtual Stage NextStage { get; set;}
}
到目前为止,我发现的唯一示例是实体具有父/子关系,即导航属性是同一实体的 ICollection。我尝试调整它,但无法让它在我的实例中工作。另外,我只需要它是一种方式,即实体没有“PreviousStage”属性,只有“NextStage”属性。我正在使用 Fluent API 进行配置。有人可以建议是否/如何实现这一目标?
我收到此错误:
无法确定类型“namespace.Stage”和“namespace.Stage”之间关联的主体端。此关联的主体端必须使用关系流式 API 或数据注释显式配置
编辑 刚刚在我稍微简化的示例中意识到,我没有表明 NextStageID 是可选的(int?)。
【问题讨论】:
-
我认为按照惯例,上述模型应该已经存在这种关系。
-
@gldraphael 我收到此错误消息:“无法确定类型 'namespace.Stage' 和 'namespace.Stage' 之间关联的主体端。此关联的主体端必须使用关系流式 API 或数据注释显式配置。"
-
Here's 如何使用流畅的配置设置 FK。
-
谢谢@Jasen!我跳过了 .HasMany 选项,因为我认为这将用于与一端或另一端的许多关系。似乎,正如那篇文章所描述的,它也适用于不涉及很多人的关系。有点奇怪,但这似乎已经完成了工作!您要发布作为答案吗?
标签: c# entity-framework ef-fluent-api