【问题标题】:EF6 Nested Transactions are not supported不支持 EF6 嵌套事务
【发布时间】:2015-03-12 23:02:55
【问题描述】:

我正在尝试为一个表进行简单的数据库插入,插入和连接工作正常。只有当输入错误数据出现异常时才会出现问题。

这是我的代码:(使用 MySql 和 EF6)

using (MaintenanceDB db = new MaintenanceDB())
        {
            try
            {
                employee employee = new employee
                {
                    ID = idTBA.textBox.Text,
                    EName = enTBA.textBox.Text,
                    AName = anTBA.textBox.Text,
                    CareerCode = careerCodeCBA.comboBox.SelectedItem.ToString(),
                    Specialization = specTBA.textBox.Text,
                    Mobile = mobileTBA.textBox.Text,
                    Telephone = teleTBA.textBox.Text,
                    Email = emailTBA.textBox.Text
                };
                db.employees.Add(employee);
                db.SaveChanges();
            }
            catch (DbUpdateException exception)
            {
                MessageBox.Show(exception.InnerException.InnerException.Message);
            }
            catch (EntityException exception)
            {
                MessageBox.Show(exception.InnerException.Message);
            }
        }

所以如果数据输入正确,一切顺利,但如果我输入重复的 ID,例如第一次进入第一个 catch 块并告诉我有重复,此时有问题,它似乎连接没有在这里关闭(尽管使用 finally 并在 db 上处理),下次我点击保存按钮时出现错误“不支持嵌套事务”,然后数据库关闭,我可以输入新的数据!

我尝试手动打开连接或启动事务并手动关闭它,正如我在这里的几篇文章中发现的那样,但似乎没有任何问题可以解决问题

【问题讨论】:

    标签: c# mysql entity-framework dbcontext


    【解决方案1】:

    好像是a mysql bug...., #71502

    [2 月 27 日 15:54] Raif Atef

    此错误是由 MySqlTransaction 类中的错误引起的。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-09-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多