sql >> Base de Datos >  >> RDS >> Mysql

Ya hay un DataReader abierto asociado con esta conexión que debe cerrarse primero + asp.net mvc

Tu problema es

Entonces, intente de esta manera en lugar de su código

Editar:

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

Avíseme si obtiene el mismo error después de este cambio.

Actualización:

He cambiado algo para ti Por favor usa este código en lugar de tu método

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

Actualización 2:

Y el desbordamiento de pila tiene muchas personas que obtuvieron las soluciones para su pregunta

1:Entity Framework:ya hay un DataReader abierto asociado con este comando

2:Cómo evitar "Ya hay un DataReader abierto asociado con esta conexión que debe cerrarse primero". en el conector MySql/net?

3:Error:Ya hay un DataReader abierto asociado con este comando que debe cerrarse primero

y mi consejo personal, creo que no dedicó más tiempo a este error, porque es una pérdida de tiempo y energía, y puede hacerlo mediante la consulta manual. Por lo tanto, intente diferentes formas.

No necesita consultas divididas y formateadas para evitar input string was not correct format error

Puede hacerlo de esta manera en lugar de return query.ToList();

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

Creo que puedes hacerlo usando mi SO anterior Enlaces.

Y mi pregunta principal es: