首先尝试与实体框架代码建立以下关系。以下代码不起作用我尝试了很多变化......有没有人有线索?
CONSTRAINT [FK_EVENT_Contact] FOREIGN KEY (Patient_ID,[Contact_ID]) REFERENCES
[PatientContact](Patient_ID,Person_ID)
public class PatientContact
{
[Key, Column(Order = 0)]
[DatabaseGenerated(DatabaseGeneratedOption.None)]
public int Person_ID { get; set; }
public virtual Person Person { get; set; }
[Key, Column(Order = 1)]
[DatabaseGenerated(DatabaseGeneratedOption.None)]
public int Patient_ID { get; set; }
public virtual Patient Patient { get; set; }
}
public class Event
{
[Key]
public int Event_ID { get; set; }
[Required]
public int EventType_ID {get;set;}
public virtual EventType EventType { get; set; }
[ForeignKey("Patient")]
public int Patient_ID { get; set; }
public virtual Patient Patient { get; set; }
[ForeignKey("PatientContact")]
public int Contact_ID { get; set; }
public virtual PatientContact PatientContact { get; set; }
}
答案 0 :(得分:18)
这里有2个选项。
使用您拥有的属性,例如:
[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; }
使用模型构建器(流畅的api)
modelBuilder.Entity<Event>()
.HasRequired(p => p.PatientContact)
.WithMany()
.HasForeignKey(p => new {p.Person_ID, p.Patient_ID});