asp.net MVC + linq to entity报"不允许启动新事务,因为有其他线程正在该会话中运行."错误解决方法

原创 2012年03月21日 14:05:35

      今天在写代码的时候,遇到这样的一个问题,在循环保存记录的时候,用SaveChanges()方法,提示我 "不允许启动新事务,因为有其他线程正在该会话中运行."从字面来看,应该是有东西被打开,而没有关闭,就又想打开了.当时还真不知道是什么问题引起的,后来查了一下MSDN.发现,原来是SaveChanges()方法,引起的并发冲突,

下面我把代码放上出来,大家看一下

foreach (var item in student)
                {
                    SMS_MsgInceptGroup sms_msg = new SMS_MsgInceptGroup();

                    sms_msg.user_id = item.id;
                    sms_msg.msg_id = msgid;

                    newEtrain.AddToSMS_MsgInceptGroup(sms_msg);
       newEtrain.SaveChanges();
                }

                
大家注意最后一句的
newEtrain.SaveChanges();
就是它引起的这个问题,解决的方法,其实很简单,

只要将它放到这个循环的外面就行了.有的朋友会说了,放到外面会保存所有的循环记录吗.答案是肯定的


entity异常 不允许启动新事务,因为有其他线程正在该会话中运行。

代码:                IOrderedQueryable tb = ent.TOHOSPITAL_TBL.Where(record =>                    (rec...

不允许启动新事务,因为有其他线程正在该会话中运行(ef并发错误处理之一)

最近项目上线试运行过程中,总是遇到各种莫名其妙的问题,纠结了很久,今天就ef出现的“不允许启动新事务,因为有其他线程正在该会话中运行”这个错误,记录自己的解决方法。 当遇到这个问题的时候,在网上搜...

window7中出现 "你需要权限来执行此操作" 的解决方法

日前安装 adobe premier pro cs5 64bit时,在进行破解操作时,需要改写C:\Windows\System32\drivers\etc下的hosts文件,不让pr上网验证是否正版...
  • jjj0817
  • jjj0817
  • 2014年01月15日 09:26
  • 10140

entity异常 不允许启动新事务,因为有其他线程正在该会话中运行。

代码:                IOrderedQueryable tb = ent.TOHOSPITAL_TBL.Where(record =>                    (rec...

asp.net MVC + linq to Entity简单教程(二)MVC的简单操作

MVC的概念不多说,model + view + Controller 有人说这个和三层没有什么区别啊。也是分三层写的啊。MVC中model层我们真的没有做什么,基本就是建立数据模型,而control...

asp.net MVC + linq to Entity简单教程(四)linq to Entity查询中其它方法的使用

在前面我们说到了,简单的列表显示,下面我们来介绍一下,一些其它的属性。   1, order by 的使用    在sql语句中,order by 语句是经常使用的。一般来说,它一般和to...

asp.net MVC + linq to Entity简单教程(四)linq to Entity查询中其它方法的使用

在前面我们说到了,简单的列表显示,下面我们来介绍一下,一些其它的属性。   1, order by 的使用    在sql语句中,order by 语句是经常使用的。一般来说,它一般和top配对使...

asp.net MVC + linq to Entity简单教程(一)MVC的建立与Entity的建立

最近在写一个项目,是一个用于手机浏览器浏览的一个校园办公的系统,主要是采用HTML5 + asp.net MVC进行编写的,平时在写程序的时候,很少用到MVC,一般都是用三层架构,因为MVC架构,生成...

asp.net MVC + linq to Entity简单教程(一)MVC的建立与Entity的建立

最近在写一个项目,是一个用于手机浏览器浏览的一个校园办公的系统,主要是采用HTML5 + asp.net MVC进行编写的,平时在写程序的时候,很少用到MVC,一般都是用三层架构,因为MVC架构,生成...

asp.net MVC + linq to Entity简单教程(五)linq to Entity中join的使用以及子查询

多表联查,可以说是我们写sql语句时最常用的一种方法。一般采用,内联(join),左联(left join),右联( right join)的方式。这里不多说了,想必大家也都了解。这里我要说的一点是在...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:asp.net MVC + linq to entity报"不允许启动新事务,因为有其他线程正在该会话中运行."错误解决方法
举报原因:
原因补充:

(最多只允许输入30个字)