c# – 在Entity Framework 4.0中“不支持嵌套事务”错误显示?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了c# – 在Entity Framework 4.0中“不支持嵌套事务”错误显示?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1316字,纯文字阅读大概需要2分钟。
内容图文
![c# – 在Entity Framework 4.0中“不支持嵌套事务”错误显示?](/upload/InfoBanner/zyjiaocheng/723/0f2f179563fb4cb98bef1581e1ebc604.jpg)
在提供程序连接上启动事务时发生错误.有关详细信息,请参阅内部异常“不支持嵌套事务.”
内在例外
public bool Insert(myModel model)
{
entities.Database.Connection.Open();
using (DbTransaction trans = entities.Database.Connection.BeginTransaction())
{
try
{
table1 obj1 = new table1
{
AccountHolderName = model.AccountHolderName,
AccountNumber = model.AccountNumber,
Address = model.Address,
};
entities.table1.Add(obj1);
entities.SaveChanges();
long id = obj1.ID;
table2 obj = new table2
{
ID = model.ID == 1 ? id : model.ID,
Username = model.Email,
Password = model.Password,
};
entities.table2.Add(obj2);
entities.SaveChanges();
trans.Commit();
}
catch (Exception)
{
trans.Rollback();
}
finally
{
entities.Database.Connection.Close();
}
}
}
解决方法:
它可能是由交易中使用的2个不同连接引起的.您应该手动控制连接:
objectContext = ((IObjectContextAdapter)entities).ObjectContext;
try{
objectContext.Connection.Open();
using (var tran = new TransactionScope()) {
table1 obj1 = new table1
{
AccountHolderName = model.AccountHolderName,
AccountNumber = model.AccountNumber,
Address = model.Address,
};
entities.table1.Add(obj1);
entities.SaveChanges();
table2 obj = new table2
{
ID = model.ID == 1 ? id : model.ID,
Username = model.Email,
Password = model.Password,
};
entities.table2.Add(obj2);
entities.SaveChanges();
tran.Complete();
}
}
finally{
objectContext.Connection.Close();
}
内容总结
以上是互联网集市为您收集整理的c# – 在Entity Framework 4.0中“不支持嵌套事务”错误显示?全部内容,希望文章能够帮你解决c# – 在Entity Framework 4.0中“不支持嵌套事务”错误显示?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。