Denna artikel är en spegelartikel om maskinöversättning, klicka här för att hoppa till originalartikeln.

Utsikt: 3308|Svar: 0

[Källa] EF samtidighetsundantag DbUpdateConcurrencyException förfrågar det cachade värdet

[Kopiera länk]
Publicerad på 2023-11-01 20:30:43 | | | |
Krav: Använd EF-optimistiska lås för att kontrollera samtidighet, om samtidighet uppstår, lägg till en återförsöksmekanism, och se att den data som återförfrågas efter återförsöket är EF-cachelagrad data, vilket resulterar i alltid sparande undantag.

Databasoperationen förväntades påverka 1 rad eller rader, men påverkade faktiskt 0 rader; Data kan ha ändrats eller raderats sedan entiteter laddades. SeInloggningen med hyperlänken är synlig.för information om att förstå och hantera optimistiska samtidighetsundantag.

Denna diskussion ledde till tankar om EF 6.x och EF Core-frågecache:Inloggningen med hyperlänken är synlig.

Hantering av skillnaden mellan samtidiga tidsstämplar och ConcurrencyCheck
https://www.itsvse.com/thread-3616-1-1.html

Som visas nedan:



SQL-skript:

ASP.NET Core 6 backend-kod:

Kontrollkod:



Alternativ 1 (rekommenderas)

användaEntityState.DetachedMarkera entitetstillståndet som att det inte spåras av kontexten, ändra det enligt följande:

Som visas nedan:



Alternativ 2

Anropa Reload()-metoden för att uppdatera entitetsobjektet, koden är som följer:

Även om omladdning också kan uppdatera EF-cachevärden,Detta leder till att SQL-frågor körs mer än en gångDärför rekommenderas det inte.

De andra två metoderna, AsNoTracking, är inte lämpliga och den andra är inte testad.

(Slut)




Föregående:.NET konverterar databasens varbinärsträng till en byte[]-array
Nästa:OpenWRT-inställningar för att starta exekveringskommandot
Friskrivning:
All programvara, programmeringsmaterial eller artiklar som publiceras av Code Farmer Network är endast för lärande- och forskningsändamål; Ovanstående innehåll får inte användas för kommersiella eller olagliga ändamål, annars kommer användarna att bära alla konsekvenser. Informationen på denna sida kommer från internet, och upphovsrättstvister har inget med denna sida att göra. Du måste helt radera ovanstående innehåll från din dator inom 24 timmar efter nedladdning. Om du gillar programmet, vänligen stöd äkta programvara, köp registrering och få bättre äkta tjänster. Om det finns något intrång, vänligen kontakta oss via e-post.

Mail To:help@itsvse.com