EF事务提交异常

事务提交失败有两种情况:
1、确实提交失败
2、提交成功,但是网络原因,没有返回成功

解决方案:
第1种情况:恢复网络后重新提交即可
第2种情况:不能重新提交

EF面临的问题:当提交失败时,EF不知道到底是发生了第一种情况还是第二种情况,所以不知道采取什么操作?

EF解决方案:有一个特性,可以让EF能够检查这两种情况,即DBConfiguration构造函数中加入
SetTransactionHandler(SqlProviderServices.ProviderInvariantName, () => new CommitFailureHandler());

EF原理:数据库中建表__Transactions,用来跟踪每一个事物的执行状态

弊端:该表__Transactions数据虽然EF会定期删除,但有时还是需要手动操作

posted on 2014-12-30 15:27  dotdotjava  阅读(534)  评论(0)    收藏  举报

导航