我正在尝试为代码优先模型创建迁移,其中一个实体与另一个实体有两个关系。一个关系是1:N,另一个是0:1:
public class Checkpoint
{
[Key, ForeignKey("Count")]
public long Id { get; set; }
// ...
public virtual Count Count { get; set; }
}
public class Count
{
public long Id { get; set; }
public virtual Checkpoint CurrentCheckpoint { get; set; }
public virtual ICollection<Checkpoint> Checkpoints { get; set; }
// ...
}
这背后的想法是有一个计数(计算事物的过程,可能需要一些时间),它有许多检查点,其中一个检查点是“最近的”检查点,作为进行计算的指标
我尝试了Required
,InverseProperty
和ForeignKey
的无数组合,但未能完成这项工作。我最接近生成的列名称对我们不起作用,我认为不管怎样都不正确,如下所示:
.ForeignKey("dbo.Count", t => t.Count_Id)
.ForeignKey("dbo.Count", t => t.Count_Id1)
.Index(t => t.Count_Id)
.Index(t => t.Count_Id1);
不幸的是,这些名称与类属性不匹配,并且不具有描述性,因此我需要更改它们(这就是我在此过程中开始的方式)。我也认为在两种情况下都应该使用t.Id
......但也许不是。这可能是EF6中的注释吗?