8

最初にエンティティ フレームワーク コードとの次の関係を設定しようとしています。次のコードは機能しません。多くのバリエーションを試しました...誰か手がかりを持っていますか?

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; }

}
4

1 に答える 1

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});
于 2012-12-27T23:14:52.510 に答える