Cet article est un article miroir de traduction automatique, veuillez cliquer ici pour accéder à l’article original.

Vue: 3308|Répondre: 0

[Source] L’exception de concurrence EF DbUpdateConcurrencyException interroge la valeur mise en cache

[Copié le lien]
Publié sur 01/11/2023 20:30:43 | | | |
Exigences : Utilisez des verrous optimistes EF pour contrôler la concurrence, en cas de concurrence rencontrée, ajoutez un mécanisme de réessayage, constatez que les données reinterrogées après la tentative sont des données en cache EF, ce qui permet de toujours sauvegarder les exceptions.

L’opération de la base de données devait affecter 1(s) ligne(s), mais en réalité n’a affecté aucune ou plusieurs lignes ; Les données ont pu être modifiées ou supprimées depuis le chargement des entités. VoirLa connexion hyperlientérée est visible.pour des informations sur la compréhension et la gestion des exceptions de concurrence optimiste.

Cette discussion a mené à des réflexions sur EF 6.x et la mise en cache des requêtes EF Core :La connexion hyperlientérée est visible.

Gestion simultanée de la distinction Timestamp et Concurrency Check
https://www.itsvse.com/thread-3616-1-1.html

Comme montré ci-dessous :



SQL script :

ASP.NET Code backend du Core 6 :

Code du contrôleur :



Option 1 (recommandée)

utiliserEntityState.DétachedEn marquant l’état de l’entité comme non suivi par le contexte, modifiez-le comme suit :

Comme montré ci-dessous :



Option 2

Appelez la méthode Reload() pour rafraîchir l’objet entité, le code est le suivant :

Bien que le rechargement puisse aussi rafraîchir les valeurs du cache EF,Cela entraîne l’exécution de requêtes SQL plus d’une foisPar conséquent, il n’est pas recommandé.

Les deux autres méthodes, AsNoTracking, ne sont pas adaptées et l’autre n’est pas testée.

(Fin)




Précédent:.NET convertit la chaîne varbinaire de la base de données en un tableau byte[]
Prochain:Paramètres OpenWRT pour démarrer la commande d’exécution
Démenti:
Tous les logiciels, supports de programmation ou articles publiés par Code Farmer Network sont uniquement destinés à l’apprentissage et à la recherche ; Le contenu ci-dessus ne doit pas être utilisé à des fins commerciales ou illégales, sinon les utilisateurs assumeront toutes les conséquences. Les informations sur ce site proviennent d’Internet, et les litiges de droits d’auteur n’ont rien à voir avec ce site. Vous devez supprimer complètement le contenu ci-dessus de votre ordinateur dans les 24 heures suivant le téléchargement. Si vous aimez le programme, merci de soutenir un logiciel authentique, d’acheter l’immatriculation et d’obtenir de meilleurs services authentiques. En cas d’infraction, veuillez nous contacter par e-mail.

Mail To:help@itsvse.com