Tämä artikkeli on konekäännöksen peiliartikkeli, klikkaa tästä siirtyäksesi alkuperäiseen artikkeliin.

Näkymä: 3308|Vastaus: 0

[Lähde] EF-samanaikaisuuspoikkeus DbUpdateConcurrencyException hakee välimuistissa olevan arvon uudelleen

[Kopioi linkki]
Julkaistu 1.11.2023 20.30.43 | | | |
Vaatimukset: Käytä EF-optimistisia lukkoja samanaikaisuuden hallintaan, jos kohtaat samanaikaisuuden, lisää uudelleenkokeilumekanismi, huomaa, että uudelleenkyselyn jälkeen haettu data on EF-välimuistissa olevaa dataa, jolloin poikkeukset tallennetaan aina.

Tietokantaoperaation odotettiin vaikuttavan yhteen riviin, mutta todellisuudessa se vaikutti 0 riviin; Tietoja on voitu muokata tai poistaa sen jälkeen, kun entiteettejä on ladattu. NähdäHyperlinkin kirjautuminen on näkyvissä.Tietoa optimististen rinnakkaispoikkeusten ymmärtämisestä ja käsittelystä.

Tämä keskustelu johti ajatuksiin EF 6.x:stä ja EF Coren kyselyvälimuistista:Hyperlinkin kirjautuminen on näkyvissä.

Samanaikaisen aikaleiman ja samanaikaisen Check-erottelun käsittely
https://www.itsvse.com/thread-3616-1-1.html

Kuten alla on esitetty:



SQL-skripti:

ASP.NET Core 6 backend-koodi:

Ohjainkoodi:



Vaihtoehto 1 (suositeltava)

käyttääEntityState.IrtautunutMerkitse entiteettitila kontekstin seuraamattomaksi, muokkaa sitä seuraavasti:

Kuten alla on esitetty:



Vaihtoehto 2

Kutsu Reload()-metodia entiteettiobjektin päivittämiseen, koodi on seuraava:

Vaikka uudelleenlataus voi myös päivittää EF-välimuistin arvot,Tämä johtaa SQL-kyselyjen suorittamiseen useammin kuin kerranSiksi sitä ei suositella.

Kaksi muuta menetelmää, AsNoTracking ei sovellu, ja toista ei testata.

(Loppu)




Edellinen:.NET muuntaa tietokannan varbinäärisen merkkijonon tavu[] taulukoksi
Seuraava:OpenWRT-asetukset suorituskomennon käynnistämiseen
Vastuuvapauslauseke:
Kaikki Code Farmer Networkin julkaisemat ohjelmistot, ohjelmamateriaalit tai artikkelit ovat tarkoitettu vain oppimis- ja tutkimustarkoituksiin; Yllä mainittua sisältöä ei saa käyttää kaupallisiin tai laittomiin tarkoituksiin, muuten käyttäjät joutuvat kantamaan kaikki seuraukset. Tämän sivuston tiedot ovat peräisin internetistä, eikä tekijänoikeuskiistat liity tähän sivustoon. Sinun tulee poistaa yllä oleva sisältö kokonaan tietokoneeltasi 24 tunnin kuluessa lataamisesta. Jos pidät ohjelmasta, tue aitoa ohjelmistoa, osta rekisteröityminen ja hanki parempia aitoja palveluita. Jos rikkomuksia ilmenee, ota meihin yhteyttä sähköpostitse.

Mail To:help@itsvse.com