已有打开的与此 Command 相关联的 DataReader,必须首先将它关闭
生活随笔
收集整理的這篇文章主要介紹了
已有打开的与此 Command 相关联的 DataReader,必须首先将它关闭
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
已有打開的與此 Command 相關聯的 DataReader,必須首先將它關閉
引用: ??http://www.cnblogs.com/maxao/archive/2011/03/18/1988168.html?
?
在運用Linq to sql 或者 linq to entity等相關linq技術進行數據庫訪問操作時,如果發生上述異常是因為是因為.NET內部是使用DataReader作數據存取,DataReader用同一個Connection。
解決辦法有兩個:
1,設定ConnectionString加上MultipleActiveResultSets=true,但只適用于SQL 2005以后的版本
2.先讀出放置在List中
例如將
?
var?preObj?=?(from?a?in?db.ArticleEAP??????????????????????????where?a.ArticleID?<?id
??????????????????????????orderby?a.ArticleID?descending
??????????????????????????select?new?{?a.ArticleID,?a.ArticleTitle?})
改為
?
var?preObj?=?(from?a?in?db.ArticleEAP??????????????????????????where?a.ArticleID?<?id
??????????????????????????orderby?a.ArticleID?descending
??????????????????????????select?new?{?a.ArticleID,?a.ArticleTitle?}).ToList()
ToList之后就被讀到內存中了,與DataContext脫鉤了!
?
轉載于:https://www.cnblogs.com/davytitan/p/4579862.html
總結
以上是生活随笔為你收集整理的已有打开的与此 Command 相关联的 DataReader,必须首先将它关闭的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Objective-C 内存管理机制
- 下一篇: ThreadPoolExecutor运转