1
假設您有一張道路里程標記點表(里程標記是美國高速公路上每英里放置的標誌)。然後你在這些英里標記之間有第二張跨度表。 Span表有兩個int列StartMileMarkerId
和EndMileMarkerId
它們是引用MileMarker Id
列的外鍵;這些是表格;EF代碼優先 - 將子表中的兩個外鍵列映射到相同的主鍵
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用流利的API一對多關係如下
modelBuilder.Entity<Span>().HasRequired(s => s.MileMarker)
.WithMany(m => m.Spans)
.HasForeignKey(s => s.StartMileMarkerId);
如何映射這2列(StartMileMarkerId
和EndMileMarkerId
)到相同的主鍵?
太棒了!這正是我所期待的。謝謝 –