Questo articolo è un articolo speculare di traduzione automatica, clicca qui per saltare all'articolo originale.

Vista: 49435|Risposta: 1

[Fonte] Le entità EF di tipo append "XXXX" falliscono perché altre...

[Copiato link]
Pubblicato su 12/05/2021 09:43:53 | | |
EF aggiunge un'entità di tipo "XXXX" che fallisce perché un'altra entità dello stesso tipo ha già lo stesso valore della chiave primaria. Quando si utilizza il metodo "Attacca" o si imposta lo stato dell'entità su "Invariato" o "Modificato"

Perché altre entità dello stesso tipo hanno già lo stesso valore chiave primaria. Questo comportamento può verificarsi usando il metodo "Attacca" o impostando lo stato di un'entità su "Immutato" o "Modificato" se una qualsiasi entità nel disegno ha un valore chiave in conflitto
Questo può essere dovuto al fatto che alcune entità sono nuove e non hanno ancora ricevuto un key-value generato dal database (nuova entità), nel qual caso il grafo viene tracciato usando il metodo "Aggiungi" o lo stato dell'entità "Aggiunto", e poi lo stato dell'entità non nuova viene impostato su "Invariato" o "Modificato" di conseguenza.
In effetti, questo errore è che quando EF apre una transazione, c'è già un dato con la stessa chiave primaria nel contesto di EF, e personalmente incontro questo problema in varie situazioni:

Situazione 1:

Modificando, iterando gli stessi dati in una tabella (ad esempio, iterando la quantità di inventario dello stesso oggetto), questo caso dovrebbe essere la prima volta che la cache contestuale non viene cancellata

Il codice è il seguente:


Il ciclo qui non segnala un errore la prima volta, e la seconda volta verrà erogato

Soluzione:


Situazione 2:

L'operazione di ciclo aggiunge prima un dato e poi modifica i dati

Il codice è il seguente:


Qui vengono segnalati anche errori, specialmente per nuovi EF o nuove entità

Soluzione:








Precedente:Test di prestazioni Redis Benchmark
Prossimo:ASP.NET Spiegazione dettagliata del middleware Middleware di Core (9).
Pubblicato su 22/09/2021 20:55:57 |
Impara a imparare...
Disconoscimento:
Tutto il software, i materiali di programmazione o gli articoli pubblicati dalla Code Farmer Network sono destinati esclusivamente all'apprendimento e alla ricerca; I contenuti sopra elencati non devono essere utilizzati per scopi commerciali o illegali, altrimenti gli utenti dovranno sostenere tutte le conseguenze. Le informazioni su questo sito provengono da Internet, e le controversie sul copyright non hanno nulla a che fare con questo sito. Devi eliminare completamente i contenuti sopra elencati dal tuo computer entro 24 ore dal download. Se ti piace il programma, ti preghiamo di supportare software autentico, acquistare la registrazione e ottenere servizi autentici migliori. In caso di violazione, vi preghiamo di contattarci via email.

Mail To:help@itsvse.com