sql >> データベース >  >> RDS >> Mysql

この接続に関連付けられている開いているDataReaderがすでにあり、最初に閉じる必要があります+ asp.net mvc

    あなたの問題は

    です

    コードの代わりに、この方法を試してください

    編集:

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

    この変更後に同じエラーが発生した場合は、お知らせください。

    更新:

    私はあなたのためにいくつかのことを変更しましたあなたの方法の代わりにこのコードを使用してください

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

    更新2:

    そして、スタックオーバーフローは多くの人々があなたの質問の解決策を手に入れました

    1: Entity Framework:このコマンドに関連付けられた開いているDataReaderがすでにあります

    2:回避する方法「この接続に関連付けられた開いているDataReaderがすでにあり、最初に閉じる必要があります。」 MySql / netコネクタで?

    3:エラー:このコマンドに関連付けられた開いているDataReaderがすでにあり、最初に閉じる必要があります

    私の個人的なアドバイスですが、時間とエネルギーが無駄になるため、このエラーにこれ以上時間を費やすことはないと思います。手動クエリを使用してそれを行うことができます。ですから、さまざまな方法を試してください。

    input string was not correct formatを回避するために、分割および書式設定クエリは必要ありません エラー

    return query.ToList();の代わりに、この方法を実行できます。

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

    上記のSOを使用して実行できると思います リンクの。

    そして私の主な質問は:



    1. UnitilsとDBMaintainer-複数のユーザー/スキームでそれらを機能させる方法は?

    2. 私のSQLのintとint(2)データ型の違い

    3. MariaDB Enterpriseとは何ですか?ClusterControlで管理する方法は?

    4. テーブルから最後のレコードIDを取得する最も安全な方法