0

Ich habe eine Frage mit Code-zuerst mit MVC5. Hier ist mein Szenario:Verwenden Master-Tabellenschlüssel zum Verknüpfen mit anderen Tabelle als Fremdschlüssel in Code-zuerst

Simple Model

I LeaveApplication Kopftabelle haben, die Company und Workgroup-Felder. Und es gibt eine Detailtabelle LeaveApplicationDetails mit LeaveTypeCode. LeaveTypes sind jetzt in einem anderen Modell LeaveType definiert, das Keys {CompanyCode, WorkGroup, LeaveTypeCode} enthält.

Wie kann ich nun das LeaveApplicationDetails-Modell mit dem LeaveType-Modell verknüpfen, indem ich LeaveApplicationHeader-Modellfelder in Code-First verwende?

bearbeiten: Probe C# -Code:

public class LeaveTypes 
{ 
    [Key, Column(Order = 0)] 
    public int CompCode { get; set; } 

    [Key, Column(Order = 1)] 
    public int WrkGrp { get; set; } 

    [Key, Column(Order = 2)] 
    [Required] 
    [StringLength(2)] 
    public string LeaveTypeCode { get; set; } 

    [StringLength(50)] 
    public string LeaveTypeName { get; set; } 
} 

public class LeaveApplicationHeader 
{ 
    [Key] 
    public int LeaveAppId { get; set; } 

    public int EmpUnqId { get; set; } 
    [ForeignKey("EmpUnqId")] 
    public Employees Employee { get; set; } 

    public int CompCode { get; set; } 
    [ForeignKey("CompCode")] 
    public Company Company { get; set; } 

    public int WrkGrp { get; set; } 
    [ForeignKey("CompCode, WrkGrp")] 
    public WorkGroups WorkGroup { get; set; } 

} 


public class LeaveApplicationDetails 
{ 
    [Key, Column(Order = 0)] 
    public int LeaveAppId { get; set; } 

    [Key, Column(Order = 1)] 
    public int LeaveAppItem { get; set; } 

    // HOW TO REFER LeaveTypeCode here? 
    // Using CompCode and WrkGroup of LeaveApplicationHeader? 

} 
+0

Bitte stellen Sie Ihre Arbeit zur Verfügung ! – Saadi

+0

Hallo, @Saadi, bitte beziehen Sie sich auf das verlinkte Bild.Ich entwerfe immer noch, habe keinen Code geschrieben. –

+0

Sie müssen Ihren C# -Code angeben.Weitere Informationen finden Sie unter Stackoverflow Richtlinien und Standards. – Saadi

Antwort

0

Nun, wie ich kann ich LeaveApplicationDetails Modell mit LeaveType Modell verknüpfen, indem LeaveApplicationHeader Modellfelder in dem Code zunächst mit?

Sie können nicht. Aus dem gleichen Grund können Sie keinen Fremdschlüssel in der Datenbank haben. Entweder legen Sie alle Fremdschlüsselspalten in eine Tabelle (z. B. indem Sie den Schlüssel von LeaveApplicationHeader (CompCode, WrkGrp, LeaveAppId) eingeben oder eine Eigenschaft auf LeaveApplicationDetail schreiben, die nach der Beschreibung fragt.

+0

Thanks a Los @David Browne Ich habe die Struktur der Tabelle geändert und die Fremdschlüssel eingefügt. –

Verwandte Themen