Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Dieser Verbindung ist bereits ein geöffneter DataReader zugeordnet, der zuerst geschlossen werden muss + asp.net mvc

Ihr Problem ist

Bitte versuchen Sie es auf diese Weise anstelle Ihres Codes

Bearbeiten:

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

Lassen Sie mich wissen, wenn Sie nach dieser Änderung denselben Fehler erhalten.

Aktualisierung:

Ich habe etwas für Sie geändert. Bitte verwenden Sie diesen Code anstelle Ihrer Methode

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

Aktualisierung 2:

Und Stapelüberlauf haben viele Leute die Lösungen für Ihre Frage

1:Entity Framework:Diesem Befehl ist bereits ein offener DataReader zugeordnet

2:Vermeidung von "Es ist bereits ein offener DataReader mit dieser Verbindung verknüpft, der zuerst geschlossen werden muss." im MySql/net-Connector?

3:Fehler:Mit diesem Befehl ist bereits ein geöffneter DataReader verknüpft, der zuerst geschlossen werden muss

und mein persönlicher Rat für, ich denke, Sie verbringen nicht mehr Zeit mit diesem Fehler, weil Zeit und Energie verschwendet werden, und Sie können dies tun, indem Sie eine manuelle Abfrage verwenden. Versuchen Sie also bitte verschiedene Wege.

Sie brauchen keine Split- und Formatierungsabfragen, um zu vermeiden, dass input string was not correct format Fehler

Sie können dies anstelle von return query.ToList(); tun

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

Ich denke, Sie können es tun, indem Sie meinen obigen SO verwenden Links.

Und meine Hauptfrage ist: