我正在使用EF6
与MySql
数据库进行一些非常简单的集成。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