亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

實體框架:已經有一個與此命令關聯的開放DataReader

實體框架:已經有一個與此命令關聯的開放DataReader

catspeake 2019-07-24 10:29:29
實體框架:已經有一個與此命令關聯的開放DataReader我正在使用實體框架,偶爾我會得到這個錯誤。EntityCommandExecutionException{"There is already an open DataReader associated with this Command which must be closed first."}    at System.Data.EntityClient.EntityCommandDefinition.ExecuteStoreCommands...即使我沒有做任何手動連接管理。這個錯誤間歇性地發生。觸發錯誤的代碼(為了便于閱讀而縮短):        if (critera.FromDate > x) {             t= _tEntitites.T.Where(predicate).ToList();         }         else {             t= new List<T>(_tEntitites.TA.Where(historicPredicate).ToList());         }使用Dispose模式以便每次都打開新連接。using (_tEntitites = new TEntities(GetEntityConnection())) {     if (critera.FromDate > x) {         t= _tEntitites.T.Where(predicate).ToList();     }     else {         t= new List<T>(_tEntitites.TA.Where(historicPredicate).ToList());     }}仍有問題如果連接已經打開,EF為什么不重用連接?
查看完整描述

3 回答

?
蕪湖不蕪

TA貢獻1796條經驗 獲得超7個贊

這不是關閉連接。EF正確管理連接。我對這個問題的理解是,在單個連接上執行多個數據檢索命令(或者具有多個選擇的單個命令),而在第一個DataReader完成讀取之前執行下一個DataReader。避免異常的唯一方法是允許多個嵌套的DataReaders =啟用MultipleActiveResultSets??偸前l生這種情況的另一種情況是,當您遍歷查詢結果(IQueryable)時,您將在迭代內觸發加載實體的延遲加載。


查看完整回答
反對 回復 2019-07-24
  • 3 回答
  • 0 關注
  • 519 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號