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

Bekijken: 49435|Antwoord: 1

[Bron] EF-entiteiten van het toevoegingstype "XXXX" falen omdat andere...

[Link kopiëren]
Geplaatst op 12-05-2021 09:43:53 | | |
EF voegt een entiteit van type "XXXX" toe die faalt omdat een andere entiteit van hetzelfde type al dezelfde primaire sleutelwaarde heeft. Wanneer je de methode "Hechten" gebruikt of de status van de entiteit instelt op "Ongewijzigd" of "Gewijzigd"

Omdat andere entiteiten van hetzelfde type al dezelfde primaire sleutelwaarde hebben. Dit gedrag kan optreden bij gebruik van de "Attach"-methode of bij het instellen van de status van een entiteit op "Ongewijzigd" of "Gewijzigd" als een entiteit in de tekening een conflicterende sleutelwaarde heeft
Dit kan komen doordat sommige entiteiten nieuw zijn en nog geen door de database gegenereerde sleutelwaarde (nieuwe entiteit) hebben ontvangen, in welk geval de grafiek wordt gevolgd met de "Add"-methode of de entiteitsstatus "Toegevoegd", waarna de status van de niet-nieuwe entiteit dienovereenkomstig wordt ingesteld op "Ongewijzigd" of "Gewijzigd".
Deze fout is namelijk dat wanneer EF een transactie opent, er al data is met dezelfde primaire sleutel in de context van EF, en ik persoonlijk dit probleem in verschillende situaties tegenkom:

Situatie 1:

Wijzigen, itereren door dezelfde data in een tabel (bijvoorbeeld het itereren van de voorraadhoeveelheid van hetzelfde item), zou dit de eerste keer moeten zijn dat de contextcache niet wordt gewist

De code is als volgt:


De lus hier rapporteert de eerste keer geen fout, en de tweede keer wordt deze fout gegeven

Oplossing:


Situatie 2:

De lusoperatie voegt eerst een stuk data toe en wijzigt vervolgens de data

De code is als volgt:


Fouten worden hier ook gemeld, vooral voor nieuwe EF's of nieuwe entiteiten

Oplossing:








Vorig:Redis Benchmark prestatietest
Volgend:ASP.NET Gedetailleerde uitleg van de middleware middleware van Core (9).
Geplaatst op 22-09-2021 20:55:57 |
Leer leren...
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