嵌套事务 DbContext SaveChanges 引发异常
Posted
技术标签:
【中文标题】嵌套事务 DbContext SaveChanges 引发异常【英文标题】:Nested Transaction DbContext SaveChanges Throws Exception 【发布时间】:2012-06-28 19:50:00 【问题描述】:假设我有两个嵌套事务,并且都有 transactionScope RequiresNew,现在假设外部事务保存实体但事务尚未提交,现在内部事务对上面保存的实体进行一些更新并将其保存到 db 但在提交事务会引发异常。是的,这在逻辑上是正确的,因为外部事务所做的更改未提交,但我想确切地知道为什么会这样?我正在使用 EF 4.1 DbContext 和 TransactionScope。任何帮助都会非常有用。
【问题讨论】:
您是否会遇到死锁异常? 【参考方案1】:虽然嵌套事务在技术上是可行的,但它们在逻辑/概念上没有任何意义。我会简单地避免嵌套事务。
【讨论】:
实际上嵌套的内部事务是另一个服务的,做一些逻辑工作然后保存 可能是这样,但可以构造成不需要嵌套事务。以上是关于嵌套事务 DbContext SaveChanges 引发异常的主要内容,如果未能解决你的问题,请参考以下文章
Entity Framework :Using Transaction Scope 如何检查 DbContext 是不是有事务?