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

Vista: 3308|Risposta: 0

[Fonte] Eccezione di concorrenza EF DbUpdateConcurrencyException interroga il valore memorizzato nella cache

[Copiato link]
Pubblicato su 01/11/2023 20:30:43 | | | |
Requisiti: Utilizzare blocchi ottimisti EF per controllare la concorrenza; se incontrare concorrenza, aggiungere un meccanismo di ritento, e scoprire che i dati riinterrogati dopo il re-try sono dati cacheati da EF, con conseguente salvezza costante delle eccezioni.

L'operazione del database era prevista per 1 riga, ma in realtà non ne ha colpite 0; I dati potrebbero essere stati modificati o cancellati da quando le entità sono state caricate. VedereIl login del link ipertestuale è visibile.Per informazioni su come comprendere e gestire le eccezioni di concorrenza ottimistica.

Questa discussione ha portato a riflessioni su EF 6.x e la cache delle query EF Core:Il login del link ipertestuale è visibile.

Gestione della distinzione tra Timestamp e ConcurrencyCheck contemporanei
https://www.itsvse.com/thread-3616-1-1.html

Come mostrato di seguito:



SQL script:

ASP.NET Codice backend Core 6:

Codice Controller:



Opzione 1 (consigliata)

usareEntityState.StachedSegnando lo stato dell'entità come non tracciato dal contesto, modificalo come segue:

Come mostrato di seguito:



Opzione 2

Richiamare il metodo Reload() per aggiornare l'oggetto entità, il codice è il seguente:

Sebbene il ricaricamento possa anche aggiornare i valori della cache EF,Questo comporta l'esecuzione di query SQL più di una voltaPertanto, non è raccomandato.

Gli altri due metodi, AsNoTracking, non sono adatti e l'altro non è stato testato.

(Fine)




Precedente:.NET converte la stringa varbinary del database in un array di byte[]
Prossimo:Impostazioni di OpenWRT per avviare il comando di esecuzione
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