【发布时间】:2016-07-24 21:53:06
【问题描述】:
假设您有一张道路英里标记点表(英里标记是美国高速公路上每英里放置的标志)。然后,您在这些英里标记之间有第二个跨度表。 Span 表有两个int 列StartMileMarkerId 和EndMileMarkerId,它们是引用MileMarker Id 列的外键;这些是表格;
tblMileMarkers
[Table("tblMileMarkers")]
public class MileMarker
{
public MileMarker()
{
Spans = new HashSet<Span>();
}
[Key]
public int Id { get; set; }
public string Name { get; set; }
public DbGeography Location { get; set; }
public virtual ICollection<Span> Spans { get; set; }
}
tblSpans
[Table("tblSpans")]
public class Span
{
[Key]
public int Id { get; set; }
[Required, StringLength(100)]
public string Name { get; set; }
public int StartMileMarkerId { get; set; }
public int EndMileMarkerId { get; set; }
public virtual MileMarker MileMarker { get; set; }
}
如果它只有一个外键(StartMileMarkerId),我可以在 DbContext 中使用 Fluent Api 配置一对多关系,如下所示
modelBuilder.Entity<Span>().HasRequired(s => s.MileMarker)
.WithMany(m => m.Spans)
.HasForeignKey(s => s.StartMileMarkerId);
如何将这两列(StartMileMarkerId 和 EndMileMarkerId)映射到同一个主键?
【问题讨论】:
标签: c# entity-framework