poy*_*poy 9 .net c# mysql entity-framework
我正在使用EF6
与MySql
数据库进行一些非常简单的集成.
在Nested transactions are not supported.
错误发生后,我做到以下几点:
key
已存在的...导致错误:Duplicate entry 'asdf' for key 'UserName_UNIQUE'
Nested transactions are not supported.
我想我不确定Nested
这两个问题会是什么......我做错了什么:
对于一些代码
using (var db = C2SCore.BuildDatabaseContext())
{
db.Users.Add(new UserProfile { UserName = UserName, Password = Password });
db.SaveChanges(); // <- Errors occur here...
}
Run Code Online (Sandbox Code Playgroud)
每个UserProfile
我添加的代码片段(就像我上面描述的流程所暗示的那样).
我有完全一样的问题.通过将其包装到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" />
Run Code Online (Sandbox Code Playgroud)
但是,他们知道它:http://bugs.mysql.com/bug.php?id = 71502
该错误表明,一旦出现第一个错误,您需要处理该事务,然后才能继续其他操作。我建议try ... catch
在区块中放置并处置当前交易finally
。
您甚至可能必须处理当前的Connection
,但我会先尝试处理交易。