Mysql
 sql >> Database >  >> RDS >> Mysql

Esiste già un DataReader aperto associato a questa connessione che deve essere prima chiuso + asp.net mvc

Il tuo problema è

Quindi prova in questo modo invece del tuo codice

Modifica :

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

Fammi sapere, se ricevi lo stesso errore dopo questa modifica.

Aggiornamento:

Ho cambiato qualcosa per te. Usa questo codice invece del tuo metodo

 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(); 
            }
        }

Aggiornamento 2:

E l'overflow dello stack ha fatto sì che molte persone abbiano le soluzioni per la tua domanda

1:Entity Framework:esiste già un DataReader aperto associato a questo comando

2:Come evitare "C'è già un DataReader aperto associato a questa connessione che deve essere prima chiuso." nel connettore MySql/net?

3:Errore:esiste già un DataReader aperto associato a questo comando che deve essere prima chiuso

e il mio consiglio personale per, penso che tu non abbia speso più tempo per questo errore, a causa della vita di tempo ed energia, e puoi farlo usando una query manuale. Quindi, per favore, prova diversi modi.

Non è necessario dividere e formattare le query per evitare input string was not correct format errore

Puoi farlo in questo modo invece di return query.ToList();

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

Penso che tu possa farlo usando il mio SO sopra link.

E la mia domanda principale è: