Gli inserimenti/aggiornamenti ed eliminazioni di ordini effettuati in Entity Framework dipendono da molte cose in Entity Framework.
Ad esempio se si inserisce un nuovo prodotto in una nuova categoria, è necessario aggiungere la categoria prima del prodotto.
Ciò significa che se si dispone di un ampio insieme di modifiche, esistono dei vincoli di ordine locale che dobbiamo soddisfare per primi, e in effetti questo è ciò che facciamo.
L'ordine in cui si fanno le cose nel contesto può essere in conflitto con queste regole. Per esempio, se si esegue questa operazione:
ctx.AddToProducts(
new Product{
Name = "Bovril",
Category = new Category {Name = "Food"}
}
);
l'effetto è che si aggiunge il prodotto (al contesto) e poi quando camminiamo il grafico aggiungiamo Categoria troppo.
cioè l'ordine di inserimento nel contesto è:
Product
Category
ma a causa di vincoli di integrità referenziale dobbiamo ri-ordine come questo prima di tentare di inserire nel database:
Category
Product
Quindi questo tipo di riordino locale è un tipo di non negoziabile.
Tuttavia, se non ci sono dipendenze locali come questa, in teoria è possibile conservare l'ordine. Purtroppo al momento non tracciamo 'quando' qualcosa è stato aggiunto al contesto, e per ragioni di efficienza non monitoriamo le entità per preservare strutture come le liste. Di conseguenza non possiamo attualmente conservare l'ordine degli inserti non correlati.
Comunque stavamo discutendo di questo solo di recente, quindi sono desideroso di vedere quanto sia vitale per te?
Spero che questo aiuti
squadra Alex
Program Manager Entity Framework
fonte
2009-05-28 16:06:36
Perché l'ordine di inserimento in un database SQL è importante? –
L'ordine di inserimento non ha importanza, tuttavia l'ordine delle chiavi primarie lo fa. – Wouter