Die Reihenfolge der Einfügungen/Aktualisierungen und Löschungen im Entity Framework ist abhängig von vielen Dingen im Entity Framework.
Wenn Sie beispielsweise ein neues Produkt in eine neue Kategorie einfügen, müssen Sie die Kategorie vor dem Produkt hinzufügen.
Dies bedeutet, dass, wenn Sie eine große Anzahl von Änderungen haben, lokale Ordnungsbeschränkungen, die wir zuerst erfüllen müssen, und das ist, was wir tun.
Die Reihenfolge, in der Sie mit dem Kontext arbeiten, kann mit diesen Regeln in Konflikt stehen. Wenn Sie zum Beispiel wie folgt vorgehen:
ctx.AddToProducts(
new Product{
Name = "Bovril",
Category = new Category {Name = "Food"}
}
);
der Effekt ist, dass das Produkt (dem Kontext) zuerst zugegeben wird und dann, wenn wir den Graphen gehen fügen wir die Kategorie zu.
dh dem Einsatz, um in den Kontext ist:
Product
Category
aber wegen der referenziellen Integrität müssen wir so neu zu ordnen, bevor sie in die Datenbank einzufügen versuchen:
Category
Product
Also das Art der lokalen Nachbestellung ist irgendwie nicht verhandelbar.
Wenn jedoch keine lokalen Abhängigkeiten wie diese bestehen, können Sie theoretisch die Reihenfolge beibehalten. Leider verfolgen wir derzeit nicht, wann etwas dem Kontext hinzugefügt wurde, und aus Gründen der Effizienz verfolgen wir keine Entitäten in auftragserhaltenden Strukturen wie Listen. Daher können wir die Reihenfolge der nicht verwandten Einsätze derzeit nicht beibehalten.
Aber wir haben das gerade erst diskutiert, also bin ich gespannt, wie wichtig das für Sie ist?
this helps
Alex
Program Manager Entity Framework-Team
Warum ist die Reihenfolge der Einfügung in eine SQL-Datenbank wichtig? –
Die Reihenfolge der Einfügung spielt keine Rolle, jedoch die Reihenfolge der Primärschlüssel. – Wouter