Wstawienia zleceń/aktualizacje i usunięcia są w Entity Framework zależne od wielu rzeczy w Entity Framework.
Na przykład, jeśli wstawisz nowy produkt do nowej kategorii, musimy dodać kategorię przed produktem.
Oznacza to, że jeśli masz duży zestaw zmian, istnieją lokalne ograniczenia zamawiania, które musimy najpierw zaspokoić, i rzeczywiście to właśnie robimy.
Kolejność czynności wykonywanych w kontekście może być niezgodna z tymi regułami. Na przykład, jeśli to zrobisz:
ctx.AddToProducts(
new Product{
Name = "Bovril",
Category = new Category {Name = "Food"}
}
);
efekt polega na tym, że produkt jest najpierw dodawany (do kontekstu), a następnie, gdy idziemy po wykresie, dodajemy również kategorię.
tj kolejności włożyć w kontekście brzmi:
Product
Category
ale z powodu ograniczeń integralności referencyjnych musimy ponownie kolejność jak to przed przystąpieniem do wstawienia do bazy danych:
Category
Product
Więc to rodzaj lokalnego zamawiania jest niezbywalny.
Jeśli jednak nie ma lokalnych zależności, można teoretycznie zachować porządek. Niestety obecnie nie śledzimy "kiedy" coś zostało dodane do kontekstu, a ze względu na wydajność nie śledzimy elementów w celu zachowania struktur takich jak listy. W rezultacie nie możemy obecnie zachować kolejności niepowiązanych wstawek.
Jednak debatowaliśmy nad tym niedawno, więc bardzo chciałbym się przekonać, jak ważne jest to dla ciebie?
Nadzieja to pomaga
Alex
Program Menedżer zespołu Entity Framework
Dlaczego kolejność wstawiania do bazy danych SQL ma znaczenie? –
Kolejność wstawiania nie ma znaczenia, jednak kolejność klawiszy podstawowych. – Wouter