我正在使用EF6MySql数据库进行一些非常简单的集成。
Nested transactions are not supported.错误发生在我执行以下操作之后:
试图添加已存在的key。从而导致错误:Duplicate entry 'asdf' for key 'UserName_UNIQUE'
尝试在之后添加任何内容…从而导致错误:Nested transactions are not supported.
我想我不知道这两个问题会是什么…我做错了什么:
为了一些密码

using (var db = C2SCore.BuildDatabaseContext())
{
  db.Users.Add(new UserProfile { UserName = UserName, Password = Password });
  db.SaveChanges(); // <- Errors occur here...
}

这个代码片段(如我的流程所示)针对我添加的每个Nested运行。

最佳答案

我也有同样的问题。
通过将其包装到TransactionScope中,尝试以下解决方法:

using System.Transactions; // Add assembly in references

using (var db = C2SCore.BuildDatabaseContext())
{
  using (var tran = new TransactionScope())
  {
    db.Users.Add(new UserProfile { UserName = UserName, Password = Password });
    db.SaveChanges(); // <- Should work now after first exception
    tran.Complete();
  }
}

<package id="MySql.Data" version="6.8.3" targetFramework="net45" />
<package id="MySql.Data.Entities" version="6.8.3.0" targetFramework="net45" />

但是,他们知道:http://bugs.mysql.com/bug.php?id=71502

07-28 01:38
查看更多