多线程操作DataContext问题

Teo-GH 2014-11-17 11:04:36
背景:
在winform程序中,添加一个LINQ toSQL类,命名为DataClasses1.dbml,
在“服务器资源管理器”,建立一个数据库连接,连接到SqlServer的指定数据库,将表demo1拖到视图中,
new一个DataClasses1DataContext,
DataClasses1DataContext dc = new DataClasses1DataContext();
那么问题来了:
在不同线程中foreach(var m in dc.demo1)进行相关操作时,会报以下错误:
"已有打开的与此Command相关联的DataReader,必须首先将它关闭"
“ExcuteReader要求已打开且可用的Connection。连接的当前状态为正在连接”
“阅读器关闭时尝试调用Read无效”等错误,
不知道多线程处理DataClasses1DataContext对象加锁或信号量方法,各位大牛,怎么破?
...全文
137 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
Teo-GH 2014-11-17
  • 打赏
  • 举报
回复
引用 3 楼 firstrose 的回复:
不要多线程共享datacontext 每个线程new一个
试了下,两个LINQ to SQL类实例连接同一个数据库会报二义性错误
firstrose 2014-11-17
  • 打赏
  • 举报
回复
不要多线程共享datacontext 每个线程new一个
小灰狼 2014-11-17
  • 打赏
  • 举报
回复
可以参考一个关键字:ThreadStatic
newxdlysk 2014-11-17
  • 打赏
  • 举报
回复
连接字串加一个试试 multipleactiveresultsets=True

110,546

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧