Tento článok je zrkadlovým článkom o strojovom preklade, kliknite sem pre prechod na pôvodný článok.

Pohľad: 3308|Odpoveď: 0

[Zdroj] Výnimka EF súbežnosti DbUpdateConcurrencyException sa dotazuje na uloženú hodnotu

[Kopírovať odkaz]
Zverejnené 1. 11. 2023 20:30:43 | | | |
Požiadavky: Použite EF optimistické zámky na kontrolu súbežnosti, ak narazíte na súbežnosť, pridajte mechanizmus opakovaného pokusu, zistite, že dáta znovu dotazované po opakovaní sú EF cacheované dáta, čo vedie k vždy ukladaniu výnimiek.

Očakávalo sa, že databázová operácia ovplyvní 1 riadok(y), ale v skutočnosti ovplyvnila 0 riadkov; Dáta mohli byť upravené alebo vymazané od načítania entít. VidieťPrihlásenie na hypertextový odkaz je viditeľné.pre informácie o pochopení a riešení výnimiek optimistickej súbežnosti.

Táto diskusia viedla k úvahám o EF 6.x a cache dotazov EF Core:Prihlásenie na hypertextový odkaz je viditeľné.

Riešenie rozdielov medzi súbežnými časovými pečiatkami a ConcurrencyCheck
https://www.itsvse.com/thread-3616-1-1.html

Ako je uvedené nižšie:



SQL skript:

ASP.NET backendový kód Core 6:

Kód ovládača:



Možnosť 1 (odporúčaná)

použiťEntityState.DetachedAk označíte stav entity ako nesledovaný kontextom, upravte ho nasledovne:

Ako je uvedené nižšie:



Možnosť 2

Zavolajte metódu Reload() na obnovenie entity objektu, kód je nasledovný:

Aj keď opätovné načítanie môže obnoviť aj hodnoty EF cache,To vedie k vykonávaniu SQL dotazov viackrátPreto sa neodporúča.

Ostatné dve metódy, AsNoTracking, nie sú vhodné a tá druhá nie je testovaná.

(Koniec)




Predchádzajúci:.NET prevádza varbinárny reťazec databázy na pole bajtu[]
Budúci:Nastavenia OpenWRT na spustenie príkazu na spustenie vykonávacieho príkazu
Vyhlásenie:
Všetok softvér, programovacie materiály alebo články publikované spoločnosťou Code Farmer Network slúžia len na vzdelávacie a výskumné účely; Vyššie uvedený obsah nesmie byť použitý na komerčné alebo nezákonné účely, inak nesú všetky následky používateľmi. Informácie na tejto stránke pochádzajú z internetu a spory o autorské práva s touto stránkou nesúvisia. Musíte úplne vymazať vyššie uvedený obsah zo svojho počítača do 24 hodín od stiahnutia. Ak sa vám program páči, podporte originálny softvér, zakúpte si registráciu a získajte lepšie originálne služby. Ak dôjde k akémukoľvek porušeniu, kontaktujte nás prosím e-mailom.

Mail To:help@itsvse.com