Maison >développement back-end >C++ >Comment corriger l'erreur « Une deuxième opération démarrée sur ce contexte avant la fin d'une opération précédente » d'Entity Framework Core ?
Erreur Entity Framework Core : "Une deuxième opération a démarré sur ce contexte avant qu'une opération précédente ne soit terminée"
Lorsque vous travaillez avec Entity Framework Core dans une application ASP.Net Core 2.0, vous pouvez rencontrer une « InvalidOperationException » indiquant qu'une deuxième opération a démarré sur le contexte avant une opération précédente terminé.
Causes et solutions :
La cause sous-jacente de cette erreur est que l'implémentation du contexte d'Entity Framework Core n'est pas thread-safe. Pour résoudre ce problème, assurez-vous d'enregistrer votre DbContext en tant que Transient dans votre configuration d'injection de dépendances :
services.AddDbContext<MyContext>(ServiceLifetime.Transient);
Vous pouvez également enregistrer le contexte directement en tant que Transient :
services.AddTransient<MyContext>();
Évitez d'enregistrer le contexte comme Portée :
services.AddDbContext<MyContext>();
Considérations supplémentaires :
Comprendre la dépendance transitoire :
Ajouter le contexte comme transitoire signifie que chaque fois que le contexte est demandé, une nouvelle instance est créée. Cela évite les problèmes de sécurité des threads, mais limite également la possibilité d'apporter des modifications aux entités dans plusieurs classes.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!