Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

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

Non si tratta di chiudere la connessione. EF gestisce correttamente la connessione. La mia comprensione di questo problema è che ci sono più comandi di recupero dati eseguiti su una singola connessione (o un singolo comando con selezioni multiple) mentre il successivo DataReader viene eseguito prima che il primo abbia completato la lettura. L'unico modo per evitare l'eccezione è consentire più lettori di dati nidificati =attivare MultipleActiveResultSets. Un altro scenario in cui ciò accade sempre è quando ripeti il ​​risultato della query (IQueryable) e attiverai il caricamento lento per l'entità caricata all'interno dell'iterazione.