1

Ich habe 2 Tabellen wie unten. benutze DB erste AnnäherungEinfügen von Daten in mehrere Tabellen im Entity-Framework

public class Team 
{ 
    public long Id { get; set; } 
    public string Name { get; set; } 
    public string Description { get; set; } 
} 

public class Employee 
{ 
    public long Id { get; set; } 
    public long TeamId { get; set; } // foreign key reference fom Team table 
    public string Name { get; set; } 
    public long ReferedBy { get; set; } // foreign key reference fom employee table 
} 

jetzt muss ich Daten in beide Tabelle einmal einfügen. Zum Beispiel muss ich Daten wie unten einfügen.

enter image description here

bevor ich wurde mit folgendem Code durch Einführen Kolonne bezeichnet einzufügen.

 Team team = new Team(); 
     team.Name = "Team1"; 
     team.Description = "Some Description"; 

     Employee E1 = new Employee(); 
     E1.Name = "Jon"; 
     Employee E2 = new Employee(); 
     E2.Name = "Harish"; 

     team.Employee.Add(E1); 
     team.Employee.Add(E2); 

     DBEntity db = new DBEntity(); 
     db.Set<Team>().add(team); 
     db.saveChanges(); 

nach Einführung von Bezogen auf Spalte, wie kann ich diese Referenz in die Datenbank einfügen.

Antwort

0

Wenn Sie das Einfügen als Bulk-Einsatz und die ID des Employee-Tabelle ist eine Identitätsspalte ausführen müssen, müssen Sie die Savechanges aufrufen() zweimal, um den Identitätswert von db zu erhalten, so dass Sie emp2.ReferentBy = emp1.id setzen;

Wenn Sie die db in einem Treffer treffen müssen, haben Sie zwei Optionen 1. Verwenden Sie eine Transaktion und rufen Sie SaveChanges zweimal auf, wenn ein Fehler auftritt. 2. Erstellen Sie Ihre eigene Identitätstechnik und stoppen Sie die Identität in db.

Prüfen Get identity before SaveChanges