Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Entity Framework :il existe déjà un DataReader ouvert associé à cette commande

Il ne s'agit pas de fermer la connexion. EF gère correctement la connexion. Ma compréhension de ce problème est qu'il existe plusieurs commandes de récupération de données exécutées sur une seule connexion (ou une seule commande avec plusieurs sélections) tandis que le prochain DataReader est exécuté avant que le premier n'ait terminé la lecture. La seule façon d'éviter l'exception est d'autoriser plusieurs DataReaders imbriqués =activer MultipleActiveResultSets. Un autre scénario dans lequel cela se produit toujours est lorsque vous parcourez le résultat de la requête (IQueryable) et que vous déclenchez un chargement paresseux pour l'entité chargée à l'intérieur de l'itération.