Nó không phải là về việc đóng kết nối. EF quản lý kết nối một cách chính xác. Sự hiểu biết của tôi về vấn đề này là có nhiều lệnh truy xuất dữ liệu được thực hiện trên một kết nối (hoặc lệnh đơn với nhiều lựa chọn) trong khi DataReader tiếp theo được thực thi trước khi lệnh đầu tiên hoàn thành việc đọc. Cách duy nhất để tránh ngoại lệ là cho phép nhiều DataReader lồng nhau =bật MultipleActiveResultSets. Một trường hợp khác khi điều này luôn xảy ra là khi bạn lặp lại qua kết quả của truy vấn (IQueryable) và bạn sẽ kích hoạt tải chậm cho thực thể đã tải bên trong lần lặp.