You have 2 options here.
Use attributes as you have eg:
[ForeignKey("PatientContact"), Column(Order = 0)]
public int Person_ID{ get; set; }
[ForeignKey("PatientContact"), Column(Order = 1)]
public int Patient_ID{ get; set; }
public virtual PatientContact PatientContact { get; set; }
Use the model builder (fluent api)
modelBuilder.Entity<Event>()
.HasRequired(p => p.PatientContact)
.WithMany()
.HasForeignKey(p => new {p.Person_ID, p.Patient_ID});
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…