Angenommen, Sie haben eine Tabelle mit Straßenmeilenmarkierungspunkten (Meilenmarkierungen sind Zeichen, die jede Meile auf US-Autobahnen platziert werden). Dann haben Sie eine zweite Tabelle mit Spannweiten zwischen diesen Meilensteinen. Die Span-Tabelle hat zwei int Spalten StartMileMarkerId
und EndMileMarkerId
die Fremdschlüssel sind, die auf MileMarker Id
Spalte verweisen; Dies sind die Tabellen;EF-Code Zuerst - Zuordnung von zwei Fremdschlüsselspalten in der Kindtabelle zum selben Primärschlüssel
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; }
}
Wenn es nur ein Fremdschlüssel (StartMileMarkerId
) ist, konnte ich die eine n-Beziehung in der DbContext mit Fluent Api konfiguriere, wie unten
modelBuilder.Entity<Span>().HasRequired(s => s.MileMarker)
.WithMany(m => m.Spans)
.HasForeignKey(s => s.StartMileMarkerId);
Wie kann ich diese 2 Spalten zuordnen (StartMileMarkerId
und EndMileMarkerId
) zum selben Primärschlüssel?
Brilliant! Genau das habe ich gesucht. Vielen Dank –