Tento článek je zrcadlovým článkem o strojovém překladu, klikněte zde pro přechod na původní článek.

Pohled: 3308|Odpověď: 0

[Zdroj] EF výjimka pro souběžnost DbUpdateConcurrencyException znovu dotazuje uloženou hodnotu

[Kopírovat odkaz]
Zveřejněno 01.11.2023 20:30:43 | | | |
Požadavky: Používejte EF optimistické zámky pro řízení souběžnosti, pokud narazíte na souběžnost, přidejte mechanismus pro opakované pokusy, zjistěte, že data znovu dotazovaná po opakování jsou EF cacheovaná data, což vede k neustálému ukládání výjimek.

Operace databáze měla ovlivnit 1 řádek, ale ve skutečnosti ovlivnila 0 řádků; Data mohla být od načtení entit upravena nebo smazána. VidětPřihlášení k hypertextovému odkazu je viditelné.pro informace o pochopení a řešení výjimek optimistické souběžnosti.

Tato diskuse vedla k úvahám o EF 6.x a cachování dotazů EF Core:Přihlášení k hypertextovému odkazu je viditelné.

Řešení rozlišení souběžného časového razítka a ConcurrencyCheck
https://www.itsvse.com/thread-3616-1-1.html

Jak je uvedeno níže:



SQL skript:

ASP.NET Backend kód Core 6:

Kód ovladače:



Možnost 1 (doporučeno)

používatEntityState.DetachedOznačte stav entity jako nesledovaný kontextem a upravte jej následovně:

Jak je uvedeno níže:



Možnost 2

Vyvolejte metodu Reload() pro obnovení entity objektu, kód je následující:

Ačkoli přečítání může také obnovit hodnoty EF cache,To vede k vykonání SQL dotazů více než jednouProto se nedoporučuje.

Další dvě metody, AsNoTracking, nejsou vhodné a ta druhá není testována.

(Konec)




Předchozí:.NET převádí varbinární řetězec databáze na pole bajtu[]
Další:Nastavení OpenWRT pro spuštění příkazu pro spuštění
Zřeknutí se:
Veškerý software, programovací materiály nebo články publikované organizací Code Farmer Network slouží pouze k učení a výzkumu; Výše uvedený obsah nesmí být používán pro komerční ani nelegální účely, jinak nesou všechny důsledky uživatelé. Informace na tomto webu pocházejí z internetu a spory o autorská práva s tímto webem nesouvisí. Musíte výše uvedený obsah ze svého počítače zcela smazat do 24 hodin od stažení. Pokud se vám program líbí, podporujte prosím originální software, kupte si registraci a získejte lepší skutečné služby. Pokud dojde k jakémukoli porušení, kontaktujte nás prosím e-mailem.

Mail To:help@itsvse.com