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

今天把以前的项目拿来测试发现以前能用的现在就有问题了,报错信息如下。

{"IsSuccessful":false,
"ResultMsg":"在提供程序连接上启动事务时出错。有关详细信息,请参阅内部异常。   在 System.Data.Entity.Core.EntityClient.EntityConnection.BeginDbTransaction(IsolationLevel isolationLevel)\r\n   在 System.Data.Entity.Core.EntityClient.EntityConnection.BeginTransaction()\r\n   在 System.Data.Entity.Core.Objects.ObjectContext.ExecuteInTransaction[T](Func`1 func, IDbExecutionStrategy executionStrategy, Boolean startLocalTransaction, Boolean releaseConnectionOnSuccess)\r\n   在 System.Data.Entity.Core.Objects.ObjectContext.SaveChangesToStore(SaveOptions options, IDbExecutionStrategy executionStrategy, Boolean startLocalTransaction)\r\n   在 System.Data.Entity.Core.Objects.ObjectContext.\u003c\u003ec__DisplayClass2a.\u003cSaveChangesInternal\u003eb__27()\r\n   在 System.Data.Entity.SqlServer.DefaultSqlExecutionStrategy.Execute[TResult](Func`1 operation)\r\n   在 System.Data.Entity.Core.Objects.ObjectContext.SaveChangesInternal(SaveOptions options, Boolean executeInExistingTransaction)\r\n   在 System.Data.Entity.Core.Objects.ObjectContext.SaveChanges(SaveOptions options)\r\n   在 System.Data.Entity.Internal.InternalContext.SaveChanges()\r\n   在 System.Data.Entity.Internal.LazyInternalContext.SaveChanges()\r\n   在 System.Data.Entity.DbContext.SaveChanges()\r\n   在 Business.Repository`1.Update(TEntity entity, HandleResult\u0026 status) 位置 E:\\RS\\Business\\Repository.cs:行号 264",
"ResultData":null}

在执行了 EntityContext.SaveChanges();后报错"不允许启动新事务,因为有其他线程正在该会话中运行。"因为以前没注意过这个问题所有也不清楚为啥。浏览了论坛看到一哥子说的大概意思是查询一个连接,另一个连接提交事务。

我想大概就是我在查询的时候打开1个连接,但后面提交更新还是同一个连接,而更新提交时原来打开的没有停止就冲突了。所以我在我的循环里新建1个用于提交更新然后就嗯嗯ok。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值