Einfügen von Daten gleichzeitig in Einheit mit einem zu vielen Beziehung
Habe ich zwei Personen: Schüler und Enrollement mit einer eins-zu-viele-Beziehung.
Die Entitäten sieht aus wie
public class Student{
[Key]
public int Studentid {get; set;}
public string fname{get; set;}
public string lname{get; set;}
public virtual ICollection<Enrollement> Enrollement_E{ get; set; }
}
public class Enrollement{
[Key]
public int EnrolId {get; set;}
[ForeignKey("Studentid ")]
public int Student{get; set;}
public string kk{get; set;}
public virtual Student Student_E { get; set; }
}
Studentid ist ein autoincremented Primärschlüssel und dient als Fremdschlüssel in der Registrierungs-Tabelle. Ich versuche zum einfügen von Daten in diese Tabelle. Die beiden Einsätze sollten nicht zu Begehen, wenn 1 ausfällt. So, ich habe den folgenden code.
try{
repository.stu.insert(new student{fname = "fname", lname="lname"});
repository.enr.insert(new Enrollement{student=???, kk="test"});
}
finally{
repository.save();
}
Wie soll ich den pass in der der Fremdschlüssel für die Enrollement-Datensatz, wenn die Daten noch nicht gespeichert wurde. Oder gibt es einen anderen Weg, dies zu tun?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Statt die Zuordnung der foreign key, weisen Sie dem gesamten Objekt:
Diese Weise, wenn
student
erhalten Ihren neuen Schlüssel, es wird automatisch gespeichert in der Einschreibung.Brauchen Sie nicht zu speichern, diese beiden Objekte getrennt, Sie können dies erreichen, indem Sie auf speichern, rufen Sie nur
Innerhalb der angeschlossenen OnModelCreating Methode , definieren Sie die Beziehung wie, es wird sicher, dass wenn Sie Student-Objekt, dessen Verwandte oder untergeordnete Objekte ich.e Enrollements wird auch gespeichert
Nun Ihr code sollte wie folgt Aussehen
Dies geschieht mit Hilfe von Entity Framework-Core
eine Letzte Sache, folgende Konventionen müssen Sie auch ändern Sie die foreign Key-Feld
Ef leicht zu handhaben foreign key einfügen von Daten in mehreren verknüpften Tabellen. wenn Sie einfügen möchten Ihre Daten gleichzeitig in zwei Tabellen können Sie verwenden Sie folgenden code zum einfügen:
Ef selbst macht Fremdschlüssel für die zweite Tabelle