Acest articol este un articol oglindă al traducerii automate, vă rugăm să faceți clic aici pentru a sări la articolul original.

Vedere: 3308|Răspunde: 0

[Sursă] Excepția concurenței EF DbUpdateConcurrencyException interoghează valoarea stocată în cache

[Copiază linkul]
Postat pe 01.11.2023 20:30:43 | | | |
Cerințe: Folosiți blocaje optimiste EF pentru a controla concurența, dacă întâlniți concurență, adăugați un mecanism de reîncercare și constatați că datele interogate după reîncercare sunt date cache EF, rezultând salvarea întotdeauna a excepțiilor.

Operațiunea bazei de date era așteptată să afecteze 1 rând(e), dar de fapt a afectat 0 rânduri; datele pot fi modificate sau șterse de la încărcarea entităților. VedeaAutentificarea cu hyperlink este vizibilă.pentru informații despre înțelegerea și gestionarea excepțiilor optimiste de concurență.

Această discuție a dus la reflecții despre EF 6.x și cache-ul de interogări EF Core:Autentificarea cu hyperlink este vizibilă.

Gestionarea distincției simultane între Timestamp și ConcurrencyCheck
https://www.itsvse.com/thread-3616-1-1.html

Așa cum se arată mai jos:



SQL script:

ASP.NET Cod backend Core 6:

Cod controler:



Opțiunea 1 (recomandată)

folosiEntitateState.DetașatMarcând starea entității ca nefiind urmărită de context, modifică-o astfel:

Așa cum se arată mai jos:



Opțiunea 2

Cheamă metoda Reload() pentru a reîmprospăta obiectul entitate, codul este următorul:

Deși reîncărcarea poate reîmprospăta și valorile cache-ului EF,Acest lucru duce la executarea interogărilor SQL de mai multe oriPrin urmare, nu este recomandat.

Celelalte două metode, AsNoTracking, nu sunt potrivite și cealaltă nu este testată.

(Sfârșit)




Precedent:.NET convertește șirul varbinar al bazei de date într-un tablou de octeți[]
Următor:Setări OpenWRT pentru a porni comanda de execuție
Disclaimer:
Tot software-ul, materialele de programare sau articolele publicate de Code Farmer Network sunt destinate exclusiv scopurilor de învățare și cercetare; Conținutul de mai sus nu va fi folosit în scopuri comerciale sau ilegale, altfel utilizatorii vor suporta toate consecințele. Informațiile de pe acest site provin de pe Internet, iar disputele privind drepturile de autor nu au legătură cu acest site. Trebuie să ștergi complet conținutul de mai sus de pe calculatorul tău în termen de 24 de ore de la descărcare. Dacă îți place programul, te rugăm să susții software-ul autentic, să cumperi înregistrarea și să primești servicii autentice mai bune. Dacă există vreo încălcare, vă rugăm să ne contactați prin e-mail.

Mail To:help@itsvse.com