首页 新闻 会员 周边 捐助

EF操作MySql事务问题:Nested transactions are not supported,求解决方法

0
悬赏园豆:30 [已关闭问题] 关闭于 2016-09-19 15:08

场景与https://bugs.mysql.com/bug.php?id=71502 这里描述的一样。

第一次执行更新操作没问题,但是第二次再去打开事务就报'嵌套事务不被支持'异常,除非重启数据库服务器,否则每次打开事务都报异常,重启之后又回到原来的情况,第一次没问题,第二次又报异常,很崩溃。

看里面说的是MySql.Data.dll中的Bug,但没看到解决办法,有遇到相同问题的吗?

Aka-w的主页 Aka-w | 初学一级 | 园豆:38
提问于:2016-08-27 02:54
< >
分享
所有回答(6)
0

事务没有提交,检查一下代码,看看

悦光阴 | 园豆:2251 (老鸟四级) | 2016-08-27 06:44

 事务Commit和Rollback我肯定写了的

支持(0) 反对(0) Aka-w | 园豆:38 (初学一级) | 2016-08-27 10:42
0

ef哪来的事务?

吴瑞祥 | 园豆:29449 (高人七级) | 2016-08-27 08:02

EF默认会使用事务

支持(0) 反对(0) dudu | 园豆:29737 (高人七级) | 2016-08-27 10:04

 但通常有时我们会自己来控制事务的提交和回滚

支持(0) 反对(0) Aka-w | 园豆:38 (初学一级) | 2016-08-27 10:43
0

贴下简单的代码

jello chen | 园豆:7336 (大侠五级) | 2016-08-27 10:59
 1 using(var dbContext = new DbContext())
 2 {
 3     using (var dbTransaction = dbContext.Database.BeginTransaction())
 4     {
 5        try
 6        {
 7           var dbDemoList = dbContext.Set<Db_Demo>().Where(w => w.Id == 1).ToList();
 8           dbDemoList.FirstOrDefault().DemoCode = "2001";
 9           dbContext.SaveChanges();
10           dbTransaction.Commit();
11        }
12        catch(Exception ex)
13        {
14           dbTransaction.Rollback();
15        }
16     }
17 }

 第二次执行红色行就会报错

 

 

支持(0) 反对(0) Aka-w | 园豆:38 (初学一级) | 2016-08-27 11:31
0

我的开始是报事务不能嵌套,后面报事务不存在,最后解决是....事务名大小写必须对应

TNT_duang | 园豆:202 (菜鸟二级) | 2016-08-27 17:45
0

我更新了最新版的MySql驱动,然后就可以了

Aka-w | 园豆:38 (初学一级) | 2016-09-19 15:06
0

楼主解决了这个问题吗?同问!

多多鄙人 | 园豆:45 (初学一级) | 2018-01-04 11:04
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册