• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
路漫漫其修远兮
博客园    首页    新随笔    联系   管理    订阅  订阅

已有打开的与此 Command 相关联的 DataReader,必须首先将它关闭

在运用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脱钩了!

posted @ 2011-03-18 15:35  永生牵恋  阅读(12904)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3