Linq 怎么并发操作???不冲突???用多线程插入数据 老报错

黑苹果驱动之家 2011-07-28 11:49:14
=======================================
2011-07-28 11:26:46System.InvalidOperationException: 在调用 SubmitChanges 期间不能执行此操作。
在 System.Data.Linq.DataContext.CheckNotInSubmitChanges()
在 System.Data.Linq.Table`1.InsertOnSubmit(TEntity entity)
在 FindTextDemo.MainForm.ExcelToDB(String strFile) 位置 E:\FindTextDemo\FindTextDemo\MainForm.cs:行号 591E:\财务数据\系统项目收款表\九州文化\崔健.xls
=======================================

用多线程插入数据 老报错

...全文
245 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
csproj 2011-07-29
  • 打赏
  • 举报
回复

void Insert()
{
using(DataContext1 db = new DataContext1())
{
//插入操作
}
}


然后多线程去运行 insert方法。就不会出现你说的异常
  • 打赏
  • 举报
回复
各用各的DataContext,不能共享。
csproj 2011-07-28
  • 打赏
  • 举报
回复
全部都是插入数据不用考虑并发问题。

并发问题只是出现在边读边写的时候
csproj 2011-07-28
  • 打赏
  • 举报
回复
你是不是整个层共用一个DataContext?

DataContext 是一个轻量级对象,应该在函数体内申明,释放。

q107770540 2011-07-28
  • 打赏
  • 举报
回复
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 alive501 的回复:]
数据库insert操作 不怕记录多,只怕并发数多.
比如 一万条记录由一个连接提交 10秒搞定, 而每个连接insert一条记录,一万个连接去操作,服务器只怕会down掉.
多线程应用在数据库insert场景中,适用于把界面和DB操作分开两个线程,防止长时间的DB操作时,UI没有响应,造成假死现像

给分
[/Quote]

那楼上的怎么还说插入数据库用多线程,对性能没有帮助???
alive501 2011-07-28
  • 打赏
  • 举报
回复
数据库insert操作 不怕记录多,只怕并发数多.
比如 一万条记录由一个连接提交 10秒搞定, 而每个连接insert一条记录,一万个连接去操作,服务器只怕会down掉.
多线程应用在数据库insert场景中,适用于把界面和DB操作分开两个线程,防止长时间的DB操作时,UI没有响应,造成假死现像

给分
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 winner2050 的回复:]
楼主都还不知道多线程是怎么回事呢。

插入数据库用多线程,对性能没有帮助。
[/Quote]

别光提问题 ,说解决方案啊
winner2050 2011-07-28
  • 打赏
  • 举报
回复
楼主都还不知道多线程是怎么回事呢。

插入数据库用多线程,对性能没有帮助。

  • 打赏
  • 举报
回复
[Quote=引用 5 楼 sp1234 的回复:]
各用各的DataContext,不能共享。
[/Quote]

你说每个线程一个DBContext?
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 jiabiao113 的回复:]
全部都是插入数据不用考虑并发问题。

并发问题只是出现在边读边写的时候
[/Quote]

那该 怎么解决异常啊???

110,536

社区成员

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

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

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