Erreur Entity Framework Core : "Une deuxième opération a démarré sur ce contexte avant la fin d'une opération précédente"
Lorsque vous travaillez avec Entity Framework Core dans un projet ASP.Net Core 2.0, vous pouvez rencontrer une erreur indiquant « Une deuxième opération a démarré sur ce contexte avant la fin d'une opération précédente. » Cette erreur peut se produire même si le code s'exécute sans problème localement mais échoue lorsqu'il est déployé sur un serveur intermédiaire.
Causes possibles :
Solution :
Enregistrer DbContext comme transitoire :
Pour résoudre le problème de concurrence causé par la dépendance injection, enregistrez le DbContext comme transitoire au lieu de scope. Utilisez le code suivant :
services.AddTransient<MyContext>();
Évitez les expressions lambda asynchrones :
Si des opérations asynchrones sont utilisées, refactorisez le code pour éviter d'utiliser des expressions lambda asynchrones.
Assurer la sécurité des discussions :
Comprendre les limites de l'implémentation de DbContext et assurez la sécurité des threads en exécutant les opérations de manière séquentielle ou en utilisant des mécanismes de synchronisation appropriés.
Considérez d'autres facteurs :
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!