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

Il existe déjà un DataReader ouvert associé à cette connexion qui doit d'abord être fermé + asp.net mvc

Votre problème est

Donc, veuillez essayer cette méthode au lieu de votre code

Modifier :

query.Include("User").Include("Region").Include("Category").ToList(); 

Faites-moi savoir si vous obtenez la même erreur après ce changement.

Mise à jour :

J'ai changé quelque chose pour vous Veuillez utiliser ce code au lieu de votre méthode

 public virtual IEnumerable<TEntity> Get(
    Expression<Func<TEntity, bool>> filter = null,
    Func<IQueryable<TEntity>, IOrderedQueryable<TEntity>> orderBy = null,
    string includeProperties = "")
        {
            IQueryable<TEntity> query = _dbSet;

            if (filter != null)
            {
                query = query.Where(filter);
            }


            if (orderBy != null)
            {
                return orderBy(query.Include("User").Include("Region").Include("Category").ToList()).ToList();
            }
            else
            {
                return query.Include("User").Include("Region").Include("Category").ToList(); 
            }
        }

Mise à jour 2 :

Et le débordement de la pile a beaucoup de gens qui ont les solutions à votre question

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

2 :Comment éviter "Il existe déjà un DataReader ouvert associé à cette connexion qui doit d'abord être fermé." dans le connecteur MySql/net ?

3 :Erreur :Il existe déjà un DataReader ouvert associé à cette commande qui doit d'abord être fermé

et mon conseil personnel pour, je pense que vous n'avez pas passé plus de temps pour cette erreur, car une perte de temps et d'énergie, et vous pouvez le faire en utilisant une requête manuelle. Veuillez donc essayer différentes manières.

Vous n'avez pas besoin de requêtes de fractionnement et de formatage pour éviter que input string was not correct format erreur

Vous pouvez faire de cette façon au lieu de return query.ToList();

return _dbSet.Users
    .Include(x => x.Region)
    .Include(x => x.Category).ToList();

Je pense que vous pouvez le faire en utilisant mon SO ci-dessus liens.

Et ma question principale est :