Ich habe den ganzen Tag nach einer Lösung gesucht, aber ich konnte keine finden. Ich bin auf der Suche nach etwas Hilfe.Wie fügt man das Volumen in Entity Framework v4 ein?
Ich habe drei Tabellen zum Speichern von Gruppen & ihre Kontakte in meiner Datenbank. Der Einfachheit halber betrachten ihren Namen als table_1, table_2 & table_3
table_1 (Gruppe Tabelle)
+----------+------+
| Group_Id | Name |
+----------+------+
| 1 | A |
| 2 | B |
| 3 | C |
+----------+------+
table_2 (Kontakt Tabelle):
+------------+-------+--------+
| Contact_Id | name | number |
+------------+-------+--------+
| 1 | Jack | 123 |
| 2 | Sam | 456 |
| 3 | Alice | 789 |
+------------+-------+--------+
table_3 (Junction Tabelle)
+-----------------+----------+------------+
| ContactGroup_Id | Group_Id | Contact_Id |
+-----------------+----------+------------+
| 1 | 1 | 1 |
| 2 | 2 | 2 |
| 3 | 2 | 3 |
+-----------------+----------+------------+
Jetzt lese ich Excel-Datei in meiner Webanwendung und t Hinzufügen von Massenkontakten zur Datenbank. Mit EF4, ist es das, was ich versuche zu tun: Jetzt
using (TransactionScope obj = new TransactionScope(TransactionScopeOption.Required, new TransactionOptions { IsolationLevel = System.Transactions.IsolationLevel.ReadUncommitted, Timeout = TransactionManager.MaximumTimeout }))
{
for (int i = 1; i < totalrows; i++)
{
table_2 objTable_2 = new table_2();
objTable_2.name = "ABC";
objTable_2.number= "999";
entity.table_2.AddObject(objTable_2);
entity.SaveChanges();
table_3 objTable_3 = new table_3();
objTable_3.Group_Id = "1";
objTable_3.Contact_Id = objTable_2.Contact_Id;
entity.table_3.AddObject(objTable_3);
entity.SaveChanges();
}
}
wie man sehen kann ich entity.SaveChanges()
die automatisch generierte PK von table_2
zu bekommen jedes Mal, rufen in table_3
einzufügen. Dies zu tun für Hunderte oder Tausende von Datensätzen verlangsamt wirklich meine Anwendung und ich weiß, dass dies eine schlechte Möglichkeit ist, dies zu tun.
Gibt es noch andere Arbeiten dafür? wenn ich dies mit einer Bulk-Insertion-Erweiterung von Drittanbietern tun oder SaveChanges()
nach jeweils ein paar hundert Datensätze aufrufen, wie bekomme ich dann automatisch generierte PK für table_2
in table_3
einfügen?
Haben Sie ein Blick auf meine aktualisierte Antwort? Betrachten Sie es als Lösung, wenn es geholfen hat – bsoulier