2012-12-27 18 views
7

Der Versuch, die folgende Beziehung zuerst mit dem Entity Framework-Code einzurichten. Der folgende Code funktioniert nicht Ich habe viele Varianten ausprobiert ... hat jemand eine Ahnung?Zuordnung von Fremdschlüsseln zu zusammengesetzten Schlüsseln im Entitätsframework

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

Willkommen bei Stack-Überlauf! Welchen Fehler bekommst du? Was genau willst du erreichen? – IronMan84

Antwort

17

Sie haben 2 Möglichkeiten hier.

Attribute, wie Sie zum Beispiel haben:

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

Mit dem Modellbauer (fließend api)

modelBuilder.Entity<Event>() 
    .HasRequired(p => p.PatientContact) 
    .WithMany() 
    .HasForeignKey(p => new {p.Person_ID, p.Patient_ID}); 
Verwandte Themen