Dit artikel is een spiegelartikel van machinevertaling, klik hier om naar het oorspronkelijke artikel te gaan.

Bekijken: 3308|Antwoord: 0

[Bron] EF gelijktijdigheidsuitzondering DbUpdateConcurrencyException vraagt de gecachte waarde op

[Link kopiëren]
Geplaatst op 01-11-2023 20:30:43 | | | |
Vereisten: Gebruik EF-optimistische locks om gelijktijdigheid te controleren; als je gelijktijdigheid tegenkomt, voeg een herkansingsmechanisme toe, ontdek dat de gegevens die na de herpoging worden opgevraagd EF-gecachete gegevens zijn, wat resulteert in altijd opslaande uitzonderingen.

De databasebewerking zou naar verwachting 1 rij(en) beïnvloeden, maar had eigenlijk 0 rij(en); Data kan zijn aangepast of verwijderd sinds entiteiten zijn geladen. ZienDe hyperlink-login is zichtbaar.Voor informatie over het begrijpen en omgaan met optimistische gelijktijdige uitzonderingen.

Deze discussie leidde tot gedachten over EF 6.x en EF Core query caching:De hyperlink-login is zichtbaar.

Omgaan met het onderscheid tussen gelijktijdige Timestamp en ConcurrencyCheck
https://www.itsvse.com/thread-3616-1-1.html

Zoals hieronder getoond:



SQL-script:

ASP.NET Core 6 backendcode:

Controllercode:



Optie 1 (aanbevolen)

gebruikenEntityState.LosgekoppeldDoor de entiteitsstatus als niet door de context gevolgd te markeren, wijzig je deze als volgt:

Zoals hieronder getoond:



Optie 2

Roep de Reload()-methode aan om het entiteitsobject te verversen, de code is als volgt:

Hoewel herladen ook EF-cachewaarden kan verversen,Dit resulteert in het uitvoeren van SQL-queries meer dan eensDaarom wordt het niet aanbevolen.

De andere twee methoden, AsNoTracking, zijn niet geschikt en de andere is niet getest.

(Einde)




Vorig:.NET zet de varibinaire string van de database om in een byte[]-array
Volgend:OpenWRT-instellingen om het uitvoeringscommando op te starten
Disclaimer:
Alle software, programmeermaterialen of artikelen die door Code Farmer Network worden gepubliceerd, zijn uitsluitend bedoeld voor leer- en onderzoeksdoeleinden; De bovenstaande inhoud mag niet worden gebruikt voor commerciële of illegale doeleinden, anders dragen gebruikers alle gevolgen. De informatie op deze site komt van het internet, en auteursrechtconflicten hebben niets met deze site te maken. Je moet bovenstaande inhoud volledig van je computer verwijderen binnen 24 uur na het downloaden. Als je het programma leuk vindt, steun dan de echte software, koop registratie en krijg betere echte diensten. Als er sprake is van een inbreuk, neem dan contact met ons op via e-mail.

Mail To:help@itsvse.com